簡體   English   中英

C#Helix Toolkit如何在點之間繪制直角棱鏡?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM