【问题标题】:THREE JS geometry verticles set by known angle三个由已知角度设置的 JS 几何顶点
【发布时间】:2018-10-31 05:19:58
【问题描述】:

我想画一个三角形,我只知道所有角度(Alpha、Beta、Gamma)和所有边长(10)。

为了绘制三角形,我需要将 3 个顶点设置为具有绝对 Vector3 值的几何体。

在 THREE.js 中是否有任何适合此的集成工具或实践?

geometry.vertices.push(
    new THREE.Vector3( 0,  0, 0 ),
    new THREE.Vector3( -10, -10, 0 ),
    new THREE.Vector3(  10, -10, 0 ),
);
geometry.faces.push( new THREE.Face3( 0, 1, 2 ));
var material = new THREE.MeshBasicMaterial( { color: 0xffff00, side: THREE.DoubleSide } );

var mesh = new THREE.Mesh( geometry, material );

我能想象的只有三种方法是创建一个边长为向量距离的 2 向量几何,使用矩阵平移在向量 [0] 上设置旋转枢轴并更改其位置和旋转,每次为其设置 globalToWorld()向量[1]。但我认为这不是一个好的解决方案。

【问题讨论】:

  • 有无数种方法可以实现这一点。我假设您只是在寻找适用于您的家庭作业的那一项?
  • 搜索集成三、js方法最快计算绘制千本
  • @Berthur 方法相同,总是需要知道 3 个绝对向量,我只有一个点(用于起始位置)和边长的角度。
  • @Martin 如果可能的话,你能用图片澄清你的问题吗?
  • 看起来您已经有了解决问题的方法,@Martin 不确定您还想实现什么。您可能想尝试BufferGeometry 而不是Geometry,但除此之外,别无选择。

标签: javascript three.js


【解决方案1】:

我用过这个:

var length = 10;
var aplpha = 0.3;//rad
var beta= 1;//rad
geometry.vertices.push(
      new THREE.Vector3(),
      new THREE.Vector3(length ,0,0).applyAxisAngle(new THREE.Vector3(0,1,0),aplpha ),
      new THREE.Vector3(length ,0,0).applyAxisAngle(new THREE.Vector3(0,1,0),beta ),
      new THREE.Vector3(),
);   

https://threejs.org/docs/#api/en/math/Vector3

三个.JS r 96

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 2014-08-23
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    相关资源
    最近更新 更多