【问题标题】:Rotating point on plane平面上的旋转点
【发布时间】:2012-02-17 23:05:23
【问题描述】:

给定一个平面(它的法线),并给定位于该平面上的 2 个点 K1、K2。我需要在该平面上以给定的角度 alpha 围绕 K1 旋转点 K2。如何计算K2的新坐标?

【问题讨论】:

    标签: 3d rotation plane


    【解决方案1】:

    嗯,不知道你用什么语言编码,一般的答案是这样的:

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

    【讨论】:

    • 哈哈,你在 2d 系统 {x,y} 中回答了我的问题,但我在 3d {x,y,z} 中回答了问题
    【解决方案2】:

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

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

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

    最后将轴旋转回原来的位置,这样你就有了你的 (x',y',z')

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

    【讨论】:

      猜你喜欢
      • 2022-01-12
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 2018-06-05
      • 2013-09-20
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多