- 积分
- 119
- 明经币
- 个
- 注册时间
- 2012-9-11
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
如题,我现在想把两条空间直线(长度一致,首尾坐标已知)进行空间变换使得两条直线完全重合,我查阅过帮助已经知道应该是通过平移和旋转操作可以完成,平移没什么问题,旋转一直没领悟要领,导致结果总是不对.
solid.TransformBy(Matrix3d.Displacement(line1.startpoint- line2.startpoint));//其中一个顶点对齐
接下来如何使用
solid.TransformBy(Matrix3d.Rotation(angle, axis,line1.startpoint))
按上述的顶点进行旋转呢?
我使用了以下办法获取TransformBy前两个参数angle(旋转角度)及vector(旋转轴矢量)
double angle = line1.Delta.GetAngleTo(line2.Delta);
vector axis=line1.Delta-line2.Delta //感觉这种方法有错,但不知道应该怎么做
|
|