2017-04-04 4 views
0

私は矢印が法線を描くので、3js.orgにthe exampleが見つかりました。矢印は複雑なオブジェクトであり、ArrowHelperによって作成されます。 ソースコードを見て、setDirectionメソッドが見つかりました。three.js内のオブジェクトのサーフェスに法線をレンダーする方法

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のための回転を設定するためのアルゴリズムをimmplimentしようとしたが、私はまだ{x: 0, y: 0, z: 0}見norlamsを持っています。

そして、私の質問は: enter image description here

UPD::私はCylinderGeometryを使用
同じpicuterを得るために、空間に表面から法線を描くためにベクトルを計算する方法。

UPD2
私はそれを解決しました。 Look at my codepen

+0

あなたは何のノーマルを計算する必要がありますか? 'bufferGeometry'または' geometry'を持っていますか?あるいは、顔の頂点の法線である3つのベクトルがありますか?この質問は完全に不完全です。 –

+0

私はthreejsの例と同じジオメトリを持っています。 '' CylinderGeometry'' – artzub

+0

ジオメトリの面を通り、手動で各三角形の法線を計算することをお勧めします。 – mlkn

答えて

関連する問題