javascript - Three.js 行不更新

标签 javascript three.js geometry vertices

我使用的是 Three.js。并且线路未更新。我想实时延长这条线。

  • 我认为,首先,通过读取两个数据来绘制一条线。
  • 第二,场景清晰。
  • 第三,阅读第三条信息和延长线。
  • 第四,场景清晰。
  • 最终,实时线更长。

但是,这一行并未生成。

var geometry = new THREE.Geometry();
var material = new THREE.LineBasicMaterial ({color : 0x0100FF, linewidth : 6});
function line_(k){
            if(k-1 >= 0){
                geometry.vertices.push (new THREE.Vector3 (py[k]*API.Orbit_Scale ,pz[k]*API.Orbit_Scale ,px[k]*API.Orbit_Scale));
            }
            else{
                geometry.vertices.push (new THREE.Vector3 (0,0,0));
            }
            line = new THREE.Line (geometry, material);
            line.geometry.verticesNeedUpdate = true;
            scene.add (line);
        }

function animate(){
            onWindowResize();
            line.geometry.verticesNeedUpdate = true;
            renderer.render(scene, camera);
            scene.remove(line);
            requestAnimationFrame(animate);
        }

最佳答案

使用 THREE.Geometry 实例,您可以更新数组中现有顶点的位置,并使用 verticesNeedUpdate 为线条设置动画。您无法将顶点添加到现有直线,并期望verticesNeedUpdate使用添加的顶点绘制新直线。

向现有线几何图形添加顶点的最简单解决方案是:

  • 从场景中删除旧行
  • 创建带有额外顶点的新线
  • 向场景添加线条

您还可以将其绑定(bind)到动画循环。

<小时/>

如果您想在不删除/添加几何图形的情况下进行动画处理,则必须使用带有 drawCallsTHREE.BufferGeometry 实例。如何做到这一点,您可以阅读 here in this answer

关于javascript - Three.js 行不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35859792/

相关文章:

c++ - 在Python(或C++)中将一个实体减去另一个实体

javascript - VueJS 数据()不工作

javascript - 以数据标签中的值作为目标元素

javascript - three.js 从场景中移除特定对象

three.js - 模拟曝光控制

javascript - 使用 javascript 显示 CAD 图像

3d - 计算点和矩形框(最近点)之间的距离

c++ - 使用 Boost::random 的标准多元正态随机 vector

javascript - 为什么我在 javascript 多行字符串中收到 "Error parsing..."?

javascript - 如何检查 JavaScript 中的变量是局部变量还是全局变量?