我在threejs.org中找到了绘制箭头法线的the example,这就是我所需要的。但箭头是由ArrowHelper创建的复杂对象。我查看了源代码,找到了setDirection方法。
function setDirection( dir ) {
// dir is assumed to be normalized
if ( dir.y > 0.99999 ) {
this.quaternion.set( 0, 0, 0, 1 );
} else if ( dir.y < - 0.99999 ) {
this.quaternion.set( 1, 0, 0, 0 );
} else {
axis.set( dir.z, 0, - dir.x ).normalize();
radians = Math.acos( dir.y );
this.quaternion.setFromAxisAngle( axis, radians );
}
};
我试着用四元数来实现为Vector3设置旋转的算法,但是我仍然有看着{x: 0, y: 0, z: 0}
的norlams。
我的问题是:如何计算一个矢量,以便从曲面到空间绘制一条法线,从而获得相同的图片:
更新
我使用CylinderGeometry。
UPD2
我已经解决了。Look at my codepen
发布于 2017-04-04 22:50:01
您希望查看网格的顶点法线。您可以像这样使用VertexNormalsHelper
:
var vnh = new THREE.VertexNormalsHelper( mesh, 1, 0xff0000 );
scene.add( vnh );
three.js r.84
https://stackoverflow.com/questions/43205098
复制相似问题