使用three.js将平移,旋转和缩放应用于几何后,如何获得顶点位置?

lhrec_106

我一直在玩three.js。

我的目标是在场景中创建曲线并对其进行一些变换。创建行的功能是:

var random_degree = Math.round(Math.rand() * 180);
var tmp = [
    new THREE.Vector3(-5, 0, 0),
    new THREE.Vector3(0, 0, 5),
    new THREE.Vector3(5, 0, 0),
    new THREE.Vector3(0, 0, -5),
];
var canvasW = window.innerWidth;
var canvasH = window.innerHeight;
// so the initial curve is a circle on x-z plain.

function get_line_geo() {
    var angle = (random_degree + 1 * 0.25) % 360 * (Math.PI / 180);
    var tx = Math.cos(angle) * canvasW * 0.25;
    angle = (random_degree + 1 * 0.3) % 360 * (Math.PI / 180);
    var ty = Math.sin(angle) * canvasH * 0.25;

    var curve = new THREE.CatmullRomCurve3(tmp);
    curve.closed = true;

    var geometry = new THREE.Geometry();
    geometry.vertices = curve.getPoints(300);
    console.log(geometry.vertices[0].x + ' ' +geometry.vertices[0].y + ' ' +geometry.vertices[0].z);
    var material = new THREE.LineBasicMaterial();
    var curveObject = new THREE.Line(geometry, material);
    curveObject.translateX((canvasW - margin * 2) / 2 + tx);
    curveObject.translateY((canvasH - margin * 2) / 2 + ty);
    curveObject.translateZ((canvasH - margin * 2) / 2 + ty);

    curveObject.rotation.x = ((random_degree + 1 * 0.25) % 360) * Math.PI / 180;
    curveObject.rotation.y = ((random_degree + 1 * 0.25) % 360) * Math.PI / 180;
    curveObject.rotation.z = ((random_degree + 1 * 0.25) % 360) * Math.PI / 180;

   curveObject.scale.x = 10;
   curveObject.scale.y = 10;
   curveObject.scale.z = 10;

   console.log(curveObject.geometry.vertices[0].x + ' ' +curveObject.geometry.vertices[0].y + ' ' +curveObject.geometry.vertices[0].z);

   return curveObject;
}

我使用来检查顶点的位置console.log(),在几何上下文中它们没有变化。那么,有什么方法可以计算这些顶点的新位置吗?

西兰吉

您没有将变换应用于几何体您已将转换应用于对象

研究正在使用的方法的源代码是一个好主意,以便您了解它们的作用。这样您将学到很多东西。

修改后positionrotationscale对象的属性,你需要调用

curveObject.updateMatrix();

然后执行以下操作:

var vector = new THREE.Vector3();

vector.copy( curveObject.geometry.vertices[ 0 ] );

vector.applyMatrix4( curveObject.matrix );

console.log( vector );

three.js r.75

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Three.js-我可以对几何图形“应用”位置,旋转和缩放吗?

来自分类Dev

如何使用three.js r67将径向纹理应用于环?

来自分类Dev

如何在Three.js中将纹理应用于自定义几何

来自分类Dev

使用Three.js仅将纹理应用于画布单击

来自分类Dev

在管道中使用缩放比例时,如何将缩放比例应用于所选要素?

来自分类Dev

使用Three.js,WebGL显示对象的顶点并旋转对象

来自分类Dev

使用Three.js,WebGL显示对象的顶点并旋转对象

来自分类Dev

Three.js旋转和定位几何

来自分类Dev

使用Three.js将纹理应用于非立方体多面体

来自分类常见问题

使用THREE.js TransformControls

来自分类Dev

使用THREE.js TransformControls

来自分类Dev

如何使用THREE.OBJExporter

来自分类Dev

Three.js-如何使用Three.js冒烟?

来自分类Dev

使用 OrbitControl 进行缩放后,THREE.js 正交相机位置未更新

来自分类Dev

如何在three.js中使用Three.Triangle()

来自分类Dev

在Three.js中使用ObjLoader加载对象后如何访问顶点

来自分类Dev

程序缩放后使用鼠标时d3.js平移和缩放会跳转

来自分类Dev

THREE.js:OrbitControls平移和缩放问题

来自分类Dev

Three.js OrbitControls平移和场景旋转

来自分类Dev

将权重应用于矩阵和顶点(骨骼旋转)

来自分类Dev

将旋转矩阵应用于Three.Box3

来自分类Dev

Three.js-关于(使用)THREE.BufferGeometry的问题

来自分类Dev

如何在Three.js中使用鼠标旋转对象?

来自分类Dev

如何使用THREE.WaterShader和MirrorMesh旋转THREE.PlaneBufferGeometry

来自分类Dev

如何使用 Three JS 使直线或曲线发光?

来自分类Dev

使用THREE.TransformControls缩放小对象

来自分类Dev

使用Three.js使用画布旋转纹理

来自分类Dev

将缩放和旋转应用于特定点-Javascript

来自分类Dev

Three.js 对象返回错误的位置/旋转/缩放值

Related 相关文章

  1. 1

    Three.js-我可以对几何图形“应用”位置,旋转和缩放吗?

  2. 2

    如何使用three.js r67将径向纹理应用于环?

  3. 3

    如何在Three.js中将纹理应用于自定义几何

  4. 4

    使用Three.js仅将纹理应用于画布单击

  5. 5

    在管道中使用缩放比例时,如何将缩放比例应用于所选要素?

  6. 6

    使用Three.js,WebGL显示对象的顶点并旋转对象

  7. 7

    使用Three.js,WebGL显示对象的顶点并旋转对象

  8. 8

    Three.js旋转和定位几何

  9. 9

    使用Three.js将纹理应用于非立方体多面体

  10. 10

    使用THREE.js TransformControls

  11. 11

    使用THREE.js TransformControls

  12. 12

    如何使用THREE.OBJExporter

  13. 13

    Three.js-如何使用Three.js冒烟?

  14. 14

    使用 OrbitControl 进行缩放后,THREE.js 正交相机位置未更新

  15. 15

    如何在three.js中使用Three.Triangle()

  16. 16

    在Three.js中使用ObjLoader加载对象后如何访问顶点

  17. 17

    程序缩放后使用鼠标时d3.js平移和缩放会跳转

  18. 18

    THREE.js:OrbitControls平移和缩放问题

  19. 19

    Three.js OrbitControls平移和场景旋转

  20. 20

    将权重应用于矩阵和顶点(骨骼旋转)

  21. 21

    将旋转矩阵应用于Three.Box3

  22. 22

    Three.js-关于(使用)THREE.BufferGeometry的问题

  23. 23

    如何在Three.js中使用鼠标旋转对象?

  24. 24

    如何使用THREE.WaterShader和MirrorMesh旋转THREE.PlaneBufferGeometry

  25. 25

    如何使用 Three JS 使直线或曲线发光?

  26. 26

    使用THREE.TransformControls缩放小对象

  27. 27

    使用Three.js使用画布旋转纹理

  28. 28

    将缩放和旋转应用于特定点-Javascript

  29. 29

    Three.js 对象返回错误的位置/旋转/缩放值

热门标签

归档