[英]C# Helix Toolkit how to draw a rectangular prism between points?
我試圖在兩個點之間繪制一個形狀(表示為Point3D
對象)。
目標是創建一個從點A到點B的路徑/直角矩形,因此側面平坦且短(例如,長度為10,寬度為3,高度為1,兩端在每個點的形狀)。
到目前為止,我已經嘗試使用Helix Toolkit的內置幫助器方法(以兩點之間的中點為中心)創建盒子形狀:
AddBox(Point3D center, Vector3D x, Vector3D y, double xlength, double ylength, double zlength, BoxFaces faces = BoxFaces.All)
問題是我不知道是否或如何控制盒子的旋轉和角度,以便如果兩個點彼此成對角線或處於不同高度時將它們連接起來。
有沒有辦法更優雅地實現這一目標? 也許更像是AddTube方法,該方法提供點作為路徑?:
AddTube(IList<Point3D> path, double diameter, int thetaDiv, bool isTubeClosed)
謝謝
所以我設法在這里找到以下解決方案。
本質上,我只是重新調整了該鏈接上的代碼以執行所需的操作。 我調整了厚度和寬度的比例因子,並做了一個可以打開以設置棱鏡方向的枚舉:
Vector3D dir = new Vector3D();
switch (faceDirection)
{
case VectorUpFace.Up:
dir = new Vector3D(0, 0, 1);
break;
case VectorUpFace.Left:
dir = new Vector3D(0, -1, 0);
break;
case VectorUpFace.Right:
dir = new Vector3D(0, 1, 0);
break;
case VectorUpFace.Front:
dir = new Vector3D(1, 0, 0);
break;
}
然后,在調用ScaleVector
使用dir
向量(請參見此答案開頭的鏈接)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.