0

我在我的场景中添加了一个新的 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++ 会导致地形颠簸吗?

干杯。

4

1 回答 1

1

不要旋转网格,而是在创建网格之前对几何体本身应用旋转。

geometry.applyMatrix( new THREE.Matrix4().makeRotationX( - Math.PI / 2 ) );

三.js r.58

于 2013-06-18T15:44:43.230 回答