gpt4 book ai didi

从静止点到任意点的 3D 触发转换

转载 作者:行者123 更新时间:2023-12-04 05:34:10 24 4
gpt4 key购买 nike

我试图做的是建立一个相对坐标系。它所做的是取 A 点的 XYZ 坐标。然后它应该在 B 点上平移该位置以获得 C 点的位置,B 点可以在所有三个轴上旋转和平移,但 A 点仅平移,不能旋转。

基本上发生的事情是你有 2 个矩形,一个左下角在原点,一个左下角在 B 点。如果在 右上角第一个矩形的角是点 A,然后在 右上角第二个矩形的角是 C 点,无论第二个矩形如何旋转或平移,C 点将始终位于第二个矩形的右上角。但是如果A点动了说右下手角,那么 C 点将始终位于 右下第二个矩形的角。

我已经多次尝试评估正确的表达方式,我想出的结果我认为很接近。我有一些变化:

X': Xcos(pitch) - Zcos(pitch) + Xcos(yaw) + Ysin(yaw) + X.pointB

Y':Ycos(yaw) + Xsin(yaw) + Ycos(roll) + Zsin(roll) + Y.pointB

Z': Ysin(roll) + Zcos(roll) + Xsin(pitch) + Zcos(pitch) + Z.pointB

其中方程中的 XYZ 是 A 点的坐标,
Pitch、Yaw 和 Rolls 是第二个矩形的角度(以度为单位)。

最佳答案

一起表示旋转和平移的常用方法是使用 homogeneous coordinate vectors和 4x4 transformation matrices .向量乘以矩阵同时进行旋转和平移;将两个矩阵相乘为您提供一个新矩阵,该矩阵按顺序执行两个操作,这就是您想要解决的问题。这是基本的计算机图形数学(但它对几何和物理学也很有用......)。

以这种方式表示向量和矩阵可能看起来多余甚至浪费,但它使数学和编程更简单。一旦你理解了数学是如何工作的,并且有了工作代码,你就可以根据需要返回并优化掉冗余数据;但是,您可能会发现这样做不值得。

您问题中的公式不起作用 - 您需要决定应用偏航、俯仰和滚转的顺序,生成适当的 X-、Y- 和 Z- rotation matrices ,并按顺序将它们相乘(该链接为您提供了单个旋转矩阵以及组合旋转矩阵的示例)。

translation matrix比计算旋转矩阵简单得多。平移矩阵相乘基本上只是将平移向量相加,但是当旋转进入图片时,您会看到系统的优势:平移和旋转的顺序很重要,并且矩阵可以很容易地每次都把事情做好。

最后,要真正解决您的问题:

  • 在固定平台上计算角色的组合旋转/平移矩阵。 (理想情况下,您应该使用此矩阵绘制原始字符)
  • 计算“投影”平台的组合旋转/平移矩阵(也可用于绘制投影平台)
  • 将两个矩阵相乘以确定“投影”字符的正确矩阵

  • 请注意,唯一需要的三角函数是 sin()cos()原始滚转/俯仰/偏航角。

    关于从静止点到任意点的 3D 触发转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12182239/

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