C#螺旋工具箱如何在点之间绘制矩形棱镜?
我试图在两点之间绘制一个形状(表示为C#螺旋工具箱如何在点之间绘制矩形棱镜?,c#,wpf,windows,3d,helix-3d-toolkit,C#,Wpf,Windows,3d,Helix 3d Toolkit,我试图在两点之间绘制一个形状(表示为Point3D对象) 目标是创建一条从点a到点B的路径/道路,作为一个矩形棱柱体,因此它的侧面应平坦且短(例如,长度为10,宽度为3,高度为1,形状的末端位于每个点) 到目前为止,我已经尝试使用Helix Toolkit的内置辅助方法创建长方体形状,使用点之间的中点作为中心: AddBox(Point3D center, Vector3D x, Vector3D y, double xlength, double ylength, double zlength
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)
AddTube(IList路径,双直径,塔顶内,布尔闭合)
谢谢所以我设法找到了以下解决方案 本质上,我只是在那个链接上重新安装了代码来完成我需要做的事情。我调整了厚度和宽度的比例因子,并创建了一个枚举,可以打开该枚举设置棱镜的方向:
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
向量(请参阅本答案开头的链接)