围绕另一个 3D 点旋转 3D 点
Rotate 3D point around another 3D Point
是的,我一直在搜索 Whosebug 上的其他帖子,但大多数我不理解它们,或者我不知道如何用我的脚本语言实现它。
我想围绕另一个 3D 点旋转一个 3D 点,我有一个带 3D 旋转的父 3D 点和带 3D 旋转的子 3D 点,我如何围绕父点旋转子点以保持旋转信息?
脚本语言是 PAWN,但 C 语言也可以(因为它相似),我知道我必须使用那些功能:
- floatcos(Float:angle, anglemode(radian, degrees or grades));
- floatsin(Float:angle, anglemode(radian, degrees or grades));
- floattan(Float:angle, anglemode(radian, degrees or grades));
父点和子点具有这些坐标:
X(左 右), Y(前 后), Z(这是上下)
RX(Rotation Pitch), RY(Rotation Roll), RZ(Rotation Yaw)
红色是父点
蓝色是子点
Click here for Image
我希望你们能帮助我,我的数学真的很差,我需要这个以某种方式工作:/
好吧,我是使用旋转矩阵库完成的,它根据父位置和旋转计算所有附加对象的世界位置。
一位来自数学论坛的用户推荐了这个并且它有效
https://en.m.wikipedia.org/wiki/Rotation_matrix
是的,我一直在搜索 Whosebug 上的其他帖子,但大多数我不理解它们,或者我不知道如何用我的脚本语言实现它。
我想围绕另一个 3D 点旋转一个 3D 点,我有一个带 3D 旋转的父 3D 点和带 3D 旋转的子 3D 点,我如何围绕父点旋转子点以保持旋转信息?
脚本语言是 PAWN,但 C 语言也可以(因为它相似),我知道我必须使用那些功能:
- floatcos(Float:angle, anglemode(radian, degrees or grades));
- floatsin(Float:angle, anglemode(radian, degrees or grades));
- floattan(Float:angle, anglemode(radian, degrees or grades));
父点和子点具有这些坐标: X(左 右), Y(前 后), Z(这是上下) RX(Rotation Pitch), RY(Rotation Roll), RZ(Rotation Yaw)
红色是父点 蓝色是子点
Click here for Image
我希望你们能帮助我,我的数学真的很差,我需要这个以某种方式工作:/
好吧,我是使用旋转矩阵库完成的,它根据父位置和旋转计算所有附加对象的世界位置。
一位来自数学论坛的用户推荐了这个并且它有效 https://en.m.wikipedia.org/wiki/Rotation_matrix