【发布时间】:2021-10-28 06:03:09
【问题描述】:
是的,我一直在搜索 stackoverflow 上的其他帖子,但大多数情况下我不理解它们,或者我不知道如何用我的脚本语言实现它。
我想围绕另一个 3D 点旋转一个 3D 点,我有一个具有 3D 旋转的父 3D 点和一个具有 3D 旋转的子 3D 点,我如何围绕父点旋转子点以保持旋转信息?
脚本语言是PAWN,但C语言也很好(因为它很相似),我知道我必须使用那些功能:
- floatcos(Float:angle, anglemode(radian, degree or grades));
- floatsin(Float:angle, anglemode(radian, degree or grades));
- floattan(Float:angle, anglemode(radian, degree or grades));
父点和子点具有以下坐标: X(左右),Y(前后),Z(上下) RX(Rotation Pitch), RY(Rotation Roll), RZ(Rotation Yaw)
红色是父点 蓝色是子点
我希望你们能帮助我,我的数学真的很差,我需要这个以某种方式工作:/
【问题讨论】:
-
可以围绕向量旋转一个点,但不能围绕另一个点旋转。您是否打算在一个点上表示来自原点的矢量?您还需要指定旋转量(以度或其他角度单位)。你想旋转多少?你可以看看这篇文章:stackoverflow.com/questions/34050929/…
-
例如,我的父点在 X: 10 Y: 45 Z: 5 而子点在 X: -8 Y: 105 Z: 11,现在我需要旋转孩子在 X、Y、Z 轴上的父点周围定位。该怎么做?
-
大约是 180 度吗?你可以这样做。我们称第一个点为 p1 和第二个点为 p2。那么旋转点将是 p2 + (p2 - p1)。
-
Around表示0-360度,是我从父点得到的变量,我得到父点的X,Y,Z旋转,我需要计算新的X,Y,使用父旋转的子点的 Z 位置。
-
保留轮播信息是什么意思?子点的轮换信息有什么意义?