私はHelixToolkitとC#を使用したプログラミングを使用しています。特定のジオメトリの位置を特定できません。ジオメトリの位置とサイズを使用してジオメトリを取得する方法はありません
私はキューブを作成するために、次のコードを書いた:
var meshBuilder3 = new MeshBuilder(false, false);
meshBuilder3.AddBox(new Point3D(1, 9, 15), 2, 2, 2);
var mesh1000 = meshBuilder3.ToMesh(true);
Color halfTransparent = Color.FromArgb(127, Colors.Black.R, Colors.Black.G, Colors.Black.B);
var TranspMaterial = MaterialHelper.CreateMaterial(halfTransparent);
modelGroup.Children.Add(new GeometryModel3D { Geometry = mesh1000, Material = TranspMaterial });
今、私は幾何学的オブジェクトを取得するために、さらにいくつかの行を書きました。私はRect3D
オブジェクトに私のカーソルを指摘し、場所とX,Y,Z
サイズの値を見てみました
Model3DCollection children = modelGroup.Children;
Model3D model = children[0];
GeometryModel3D geom3D = (GeometryModel3D)model;
Geometry3D geo3D = geom3D.Geometry;
Rect3D rec3D = geo3D.Bounds;
Point3D x = rec3D.Location;
は、それが
{0,8,5}
それぞれ
13,5,5
など
X,Y,Z
として表示する場所でした。
しかし、私のキューブのサイズは2
で、場所は{1,9,15}
です。私はなぜその印刷いくつかの間違った価値を理解していない。
また、利用可能なすべてのメソッドを実行しましたが、位置と中心値を渡すと、GeometryModel3D
オブジェクトを取得するメソッドが見つかりませんでした。キューブの位置とそのサイズがある場合は、Geometry3D
オブジェクトを取得できますか?なぜなら、子どもを検索しようとすると、子ども全体をループさせて、それぞれの子どもが望む場所を確認しようとすると、本当に大きなプログラムになり、計算時間が増えるからです。
私はこのような何かをしたい:
GeometryModel3D geom3D = children.find(Point3D Location,double sizeX,double sizeY,double sizeZ);
誰かがこれら二つの質問に答えることができる場合、私は、本当に喜んでいるだろう。 ありがとうございました
'ToMesh'コールの後でもまだキューブオブジェクトを持っていますか?この名前は、ジオメトリをメッシュのポリゴン/トライアングルに変えることを示唆しています。 – zcui93
しかし、上記のキューブオブジェクトはありません。なぜなら、AddBox関数の戻り値の型が無効なためです。もう少し説明していただけますか? –
私はちょうどツールキットを取り下げました。残念ながらあなたのコードはコンパイルされないので、これを再現することすらできません – zcui93