0
私は3つのポイントを持っていて、いつも目に見える顔が原点から「向いている」面になるようにするには、飛行機の法線を計算するためのショートカットがありますか?このC#wpf 3D from origo
mesh.Positions.Add(p0);
mesh.Positions.Add(p1);
mesh.Positions.Add(p2);
mesh.TriangleIndices.Add(0);
mesh.TriangleIndices.Add(1);
mesh.TriangleIndices.Add(2);
normal = Vector3D(1,1,1);
mesh.Normals.Add(normal);
mesh.Normals.Add(normal);
mesh.Normals.Add(normal);
model = new GeometryModel3D(mesh, material);
または私は通常のたびに計算しなければならないのと同様に
?
通常の計算をしなければならない場合、そのアルゴリズムは何ですか、私はインターネットを見て、いくつかの方法を試しましたが、このように疑わしいものになります。 p2.X、p1.Y - - p2.Y、P1 CalculateNormalが
public static Vector3D CalculateNormal(Point3D p0, Point3D p1, Point3D p2)
{
Vector3D v0 = new Vector3D(p1.X - p0.X, p1.Y - p0.Y, p1.Z - p0.Z);
Vector3D v1 = new Vector3D(p1.X - p2.X, p1.Y - p2.Y, p2.Z - p1.Z);
return Vector3D.CrossProduct(v0, v1);
}
はそれが
のVector3D V1 =新しいのVector3D(p1.Xすべきではないです
normal = CalculateNormal(p0, p1, p2);
。 Z-p2.Z);
代わりに?
/ステファン