Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript setDrawRange做什么?在3.js中_Javascript_Three.js_Data Visualization - Fatal编程技术网

Javascript setDrawRange做什么?在3.js中

Javascript setDrawRange做什么?在3.js中,javascript,three.js,data-visualization,Javascript,Three.js,Data Visualization,我一直在研究three.js代码 在阅读代码和文档时, 有一件事我搞不懂 在这个代码中。 下面是一个代码 function init(){ var geometry = new THREE.BufferGeometry(); var positions = new Float32Array(MAX_POINTS*3); geometry.addAttribute('position',new THREE.BufferAttribute(positions,3)

我一直在研究three.js代码

在阅读代码和文档时, 有一件事我搞不懂

在这个代码中。

下面是一个代码

function init(){

    var geometry = new THREE.BufferGeometry();
    var positions = new Float32Array(MAX_POINTS*3);
        geometry.addAttribute('position',new THREE.BufferAttribute(positions,3))

        drawCount =2;
        geometry.setDrawRange(0,drawCount );

        mat =  new THREE.LineBasicMaterial( { color: 0xff0000, linewidth: 2 } );

        line= new THREE.Line(geometry, mat)

        scene.add(line)

        updatePositions();

}
什么是setDrawRange? 抽签计数在那里做什么

官方文件说

.setDrawRange(开始:整数,计数:整数):null设置 .drawRange属性。对于非索引缓冲区几何体,计数是 要渲染的顶点数。对于索引缓冲区几何体,计数是 要渲染的索引数

我一点也不明白

有人能帮我解释一下是什么吗?
提前感谢。

您的几何体有许多顶点。例如,立方体至少有36个(6条边中每边6个,因为每边需要2个三角形才能形成矩形,而每个三角形需要3个顶点)。默认情况下,三个将绘制所有36个。要仅绘制前6个,请调用
setDrawRange(0,6)
。要绘制最后6个,请调用
setDrawRange(30,6)
。要绘制全部36个图形,请调用
setDrawRange(0,36)

顶点可以被索引或非索引。如果它们被编入索引,这只意味着数据中存在一定程度的间接性。而不是
setDrawRange(0,6)
指的是前6个顶点,而是指的是前6个索引,而这6个索引又指的是6个顶点(如果索引重复,有些可能会重复)

使用
setDrawRange
是不常见的,但是有一个用例,比如你想画一堆线。不需要制作许多单独的线对象,只需制作一个几何体,其中包含一组线的空间(比如1000条线,即2000个顶点)。然后,您可以根据需要向几何体添加线,并通过调用
setDrawRange(0,numLines*2)
(每行2个顶点)告诉三个用户仅绘制前N条线

您可以了解有关几何图形和几何图形的更多信息