gpt4 book ai didi

c# - WPF 中的 3d 矢量计算

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:24 24 4
gpt4 key购买 nike

我在 3d WPF 中绘制了两个球体,它们具有类似的点半径为0.10的Point3D(0,0,0)和Point3D(-1.0,1.0,2.0)

现在我想绘制一个连接这些球体的圆柱体,我唯一拥有的是半径 0.02。我想知道如何计算这个圆柱体的 3d 点、高度、方向等。

我尝试找到中点 btw sphere points,它将圆柱体放在这两个球体的中间,但方向不正确。我正在尝试在下面的代码中使用旋转。

    Vector3D v1 = new Vector3D(0, 0, 0);
Vector3D v2 = new Vector3D(1.0, -1.0, 2.0);

Vector3D center = v1+ v2/2;
Vector3D axis = Vector3D.CrossProduct(v1, v2);
double angle = Vector3D.AngleBetween(v1, v2);
AxisAngleRotation3D axisAngle = new AxisAngleRotation3D(axis, angle);
RotateTransform3D myRotateTransform = new RotateTransform3D(axisAngle, center);
center.X = myRotateTransform.CenterX;
center.Y = myRotateTransform.CenterY;
center.Z = myRotateTransform.CenterZ;

但是双角 = Vector3D.AngleBetween(v1, v2); ruselt NaN

如果有人能帮忙做这件事,那就太好了。提前致谢。

最佳答案

您可以简单地使用 RotateTransform3D将圆柱体旋转到所需的方向。

您可以将转换应用于两个属性之一 here是选项的解释

关于c# - WPF 中的 3d 矢量计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1263708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com