【问题标题】:three.js lines does not update三.js 行不更新
【发布时间】:2016-06-21 22:49:07
【问题描述】:

我正在使用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);
        }

【问题讨论】:

    标签: javascript three.js geometry vertices


    【解决方案1】:

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

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

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

    您也可以将其绑定到动画循环。


    如果您想在不删除/添加几何图形的情况下制作动画,则必须使用 THREE.BufferGeometry 实例和 drawCalls 来代替。怎么做你可以阅读here in this answer

    【讨论】:

      猜你喜欢
      • 2014-08-23
      • 1970-01-01
      • 2012-09-10
      • 2014-05-07
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多