2017-05-16 23 views
0

私はVTKのpythonラッピングを使用しています。私はスクリプトで、ユーザーが3つの任意の点を選択し、その通常の情報で三角形を返すようにします。 VTK VTK Triangleリファレンスには、vtkTriangle :: ComputeNormal(double v1 [3]、double v2 [3]、double v3 [3]、double n [3])があります。 vtkTriangleに関するCxxの実装例を確認しましたが、これをPythonで実装する方法はわかりません。 n [3]は正常を表していますか?もしそうなら、それは入力パラメータとして何をすべきでしょうか?vtktriangle Pythonで任意の点からノーマルを計算する

@ g.stevo私はそれを理解しています。しかし、ランダムな値を与えると、ComputeNormalメソッドはNoneを返します。

`p0 = trianglePolyData.GetPoints().GetPoint(0) 
p1 = trianglePolyData.GetPoints().GetPoint(1) 
p2 = trianglePolyData.GetPoints().GetPoint(2) 
print vtk.vtkTriangle().TriangleArea(p0,p1,p2) 
n=[0.0,0.0,0.0] 
print vtk.vtkTriangle().ComputeNormal(p0,p1,p2,n)` 
+0

はこれを試してみてください? –

+0

こんにちはStephen、私は現在のVTK-7.1.0リリースを使用しています.cmakeとMS VS 2015をwin 10 64ビット用にコンパイルしました。 – COz

+0

n [3]は、法線が書き込まれる配列です。入力は関係ありません。 vtkTriangle.hのLine 213を参照してください。http://www.vtk.org/doc/release/5.0/html/a03658.html#l00219 –

答えて

0

あなたのコードが動作している:より明確にするために、あなたは、下記の関連するコードのスニペットを見つけることができます。あなたが探している結果は、配列nにあります。関数ComputeNormalは、documentationに従ってvoidを返します。 Pythonの包装は、使用している

n=[0.0,0.0,0.0] 
vtk.vtkTriangle().ComputeNormal(p0,p1,p2,n) 
print n 
+0

明らかに、私はそれを見るために燃え尽きた!ありがとう。 – COz

関連する問題