2012-02-17 89 views
1

给定一个平面(它的法线),并给出2点位于该平面上的K1,K2点。我需要在该平面上将角度K2旋转约K1角度α。如何计算K2的新坐标?飞机上的旋转点

回答

2

好了,不知道你在编码的语言,一般的回答是这样的:

//get some distances 
distx = K2.x - K1.x 
disty = K2.y - K1.y 

//use Pythagorean theorem to find radius 
radius = Math.sqrt(distx*distx + disty*disty) 

//set new location using your angle, alpha 
K2.x = K1.x + radius*cos(alpha) 
K2.y = K1.y + radius*sin(alpha) 
+0

哈哈,你在2D系统{x,y}中回答了我的问题,但我用3d {x,y,z} – Lacoste 2012-02-18 11:44:32

0

旋转由定义是在一个固定支点的轴。 想象一下,在笔下旋转纸片只会在适合您的情况下更改纸张和笔的排列方式。

旋转单个轴以创建您想要旋转的轴。 您需要距离原点的距离,以便通过轴的移动来保持它的位置。 您还需要实现新轴的必要角度。测量终端时保持一致。

接下来,您需要一个位于该轴上的支点。这是你的原始素质。 由于它在固定轴上旋转,您不必再担心z轴,因为它不能来回滑动。 使用正弦和余弦,距离和旋转角度来查找新的坐标。

最后旋转轴回原来的位置,使你有你的(X“ Y”,Z')

轴角度,旋转式和欧拉角。 会为初学者推荐最后一个。