【问题标题】:How to use Three.Triangle() in three.js如何在 three.js 中使用 Three.Triangle()
【发布时间】:2015-07-02 14:27:51
【问题描述】:

Three.js 有一个名为THREE.Triangle() 的函数,我想知道如何使用它。

【问题讨论】:

  • 请添加您的代码
  • 我认为你应该可以用谷歌搜索这个,无论如何here's文档链接。
  • 为什么这是一个糟糕的问题?当我也不知道它是什么时,我对它感到好奇。

标签: javascript html three.js


【解决方案1】:

我怀疑 Triangle 类可能不是您所期望的那样;它不是直接用于绘制简单二维三角形的类。


Triangle 类是一个数学实用函数,用于封装三角形并进行计算,在绘制曲面时非常有用。
在绘图表面中使用三角形的一个很好的更详细的解释:Why do 3D engines primarily use triangles to draw surfaces?


如果你只是想画一个简单的二维三角形:

var geom = new THREE.Geometry();
var v1 = new THREE.Vector3(0,0,0);
var v2 = new THREE.Vector3(30,0,0);
var v3 = new THREE.Vector3(30,30,0);

geom.vertices.push(v1);
geom.vertices.push(v2);
geom.vertices.push(v3);

geom.faces.push( new THREE.Face3( 0, 1, 2 ) );
geom.computeFaceNormals();

var mesh= new THREE.Mesh( geom, new THREE.MeshNormalMaterial() );

另一个 StackOverflow 答案:Basic 2D colored triangle using three.js


使用 Triangle 类的等效代码:

var geom = new THREE.Geometry();
var v1 = new THREE.Vector3(0,0,0);
var v2 = new THREE.Vector3(30,0,0);
var v3 = new THREE.Vector3(30,30,0);

var triangle = new THREE.Triangle( v1, v2, v3 );
var normal = triangle.normal();

// An example of getting the area from the Triangle class
console.log( 'Area of triangle is: '+ triangle.area() );

geom.vertices.push(triangle.a);
geom.vertices.push(triangle.b);
geom.vertices.push(triangle.c);

geom.faces.push( new THREE.Face3( 0, 1, 2, normal ) );

jsbin 链接:http://jsbin.com/zatejelika/1/edit?html,css,js,output
三角类文档链接:http://threejs.org/docs/#Reference/Math/Triangle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 2017-06-12
    • 2023-04-07
    相关资源
    最近更新 更多