3d 平面上的旋转点

3d 平面上的旋转点,3d,rotation,plane,3d,Rotation,Plane,给定一个平面(其法线),并给定位于该平面上的两个点K1,K2。我需要将点K2旋转到K1,在平面上旋转给定的角度α。如何计算K2的新坐标?好吧,由于不知道您使用的是哪种语言编码,一般的答案如下: //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) //s

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

好吧,由于不知道您使用的是哪种语言编码,一般的答案如下:

//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)

根据定义,旋转是在具有固定轴心点的轴上进行的。 把它想象成在笔下旋转一张纸,只有在适合你的时候才改变纸和笔的顺序

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

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

最后,将轴旋转回其原始位置,以获得(x',y',z')

轴角度、旋转公式和欧拉角。
我会向初学者推荐最后一个。

哈哈,你在2d系统{x,y}中回答了我的问题,但我在3d系统{x,y,z}中问了