我在场景中添加了一个新的THREE.PlaneGeometry(),它在XY平面中以[0,0,0]直立显示,其法线朝向+ Z轴。然后我发出plane.rotation.x = -Math.PI / 2来放下飞机,使它的法线正面朝上。
我遇到的问题是现在平面的+ Y轴沿着全局-Z轴定向。
由于飞机代表地形,我希望能够调整顶点的高度以模拟海拔高度(海拔高度)。因此,我想要能够在代码中编写的内容是这样的:
plane.geometry.vertices[i].y = 3;
...但是这样做只是沿着Z轴移动顶点-3单位,使平面像平头一样平坦。
我可以编写一个抽象函数来为我映射坐标,但我宁愿不这样做,因为它增加了代码并阻碍了对数据结构的直接访问(这在试验时很好)
是否存在永久更改平面坐标系以使其与全局坐标系匹配的方法?这样的plane.geometry.vertices [i] .y ++实际上会导致地形上的撞击?
干杯。
答案 0 :(得分:1)
在创建网格之前,不要旋转网格,而是对几何体本身应用旋转。
geometry.applyMatrix( new THREE.Matrix4().makeRotationX( - Math.PI / 2 ) );
three.js r.58