gl-plot3d
Version:
Quick start rendering engine for plotting/data visualization
41 lines (35 loc) • 1.11 kB
JavaScript
var createScene = require('../scene')
var createSurface = require('gl-surface3d')
var ndarray = require('ndarray')
var scene = createScene()
//Create parameters for a torus
var size = 64
var coords = [
ndarray(new Float32Array(4*(size+1)*(size+1)), [2*size+1,2*size+1]),
ndarray(new Float32Array(4*(size+1)*(size+1)), [2*size+1,2*size+1]),
ndarray(new Float32Array(4*(size+1)*(size+1)), [2*size+1,2*size+1])
]
for(var i=0; i<=2*size; ++i) {
var theta = Math.PI * (i - size) / size
for(var j=0; j<=2*size; ++j) {
var phi = Math.PI * (j - size) / size
coords[0].set(i, j, (50.0 + 20.0 * Math.cos(theta)) * Math.cos(phi))
coords[1].set(i, j, (50.0 + 20.0 * Math.cos(theta)) * Math.sin(phi))
coords[2].set(i, j, 20.0 * Math.sin(theta))
}
}
var contourLevels = [[0], [0], [0]]
var surface = createSurface({
gl: scene.gl,
levels: [ contourLevels, contourLevels, contourLevels ],
lineWidth: 3,
contourTint: 1,
coords: coords,
contourProject: [
[true,false,false],
[false,true,false],
[false,false,true] ],
showContour: true
})
scene.add(surface)