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

7

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


请添加您的代码。 - fdsa
我认为你应该能够通过谷歌找到这个,无论如何,这是文档链接:http://threejs.org/docs/#Reference/Math/Triangle。 - Phoenix
为什么这是一个糟糕的问题?当我对某些东西毫无头绪时,我也会感到好奇。 - Ender Doe
1个回答

14

我怀疑Triangle类可能不是你想要的;它不是用来直接绘制简单的2D三角形的类。


Triangle类是一个数学实用函数,用于封装三角形并进行计算,在绘制表面时非常有用。
关于在绘制表面时使用三角形的更详细解释:为什么3D引擎主要使用三角形来绘制表面?


如果你只是想绘制一个简单的2D三角形:

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回答:使用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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接