3D parametric surface plotting, compatible with gl-vis.
var createScene = require('gl-plot3d')
var createSurfacePlot = require('gl-surface3d')
var ndarray = require('ndarray')
var fill = require('ndarray-fill')
var diric = require('dirichlet')
var scene = createScene()
//Create field
var field = ndarray(new Float32Array(512*512), [512,512])
fill(field, function(x,y) {
return 128 * diric(10, 10.0*(x-256)/512) * diric(10, 10.0*(y-256)/512)
})
//Create surface plot
var surface = createSurfacePlot({
gl: scene.gl,
field: field
})
scene.add(surface)Here is what this should look like:
Test it in your browser (requires WebGL)
npm install gl-surface3d
Creates a surface plot object. params is an object with any of the following parameters
glis a WebGL contextfielda new 2D field encoded as an ndarraycoordsis an array of 3 2D fields, each encoded as ndarrays (for parameteric surfaces)intensitya 2D intensity field (defaults tofieldor `coords[2] is not present)colormapthe name of the new color map for the surface (see list of names incolormapdocs)intensityBoundssets the intensity range for the colormapticksis a pair of arrays of ticks representing the spacing of the points for the axes of the surfaceshowSurfaceif set, draw the surfaceshowContourif set, draw contour linescontourWidththe width fo the contour linescontourTintthe amount of tint of the contour linescontourColorthe color of the contour line tintlevelsan array of arrays representing the level of the isolines.dynamicWidththe width of the dynamic isolinesdynamicColorsthe color of the dynamic isolinesdynamicTintthe tint of the dynamic isolinesvertexColorinterpolate color in fragment or vertex shader, useful for discontinuous functions (ref)
Modify the surface. params is an object with the same properties as the constructor
(c) 2014-2015 Mikola Lysenko. MIT License.
