C# 圆坐标计算

C# 圆坐标计算,c#,unity3d,coordinates,C#,Unity3d,Coordinates,我的问题基本上是在以下情况下计算第二个元素的x和y坐标 用于unity3d中的工具,使用c# 如果你知道x轴和这个长方体之间的角度,你可以使用一些基本的三角 假设长方体对象的长度为“len”。(这确实有助于更好地描述正在发生的事情,我不完全理解。)假设你有一个θ角 我假设圆心有坐标(0,0) 然后,从圆心到长方体接触的圆边缘的垂直距离为y=len*sin(θ),水平距离为len*cos(θ) 如果你只走了盒子的2/5,你会用len/5而不是len 这只是背后的数学问题。在c#中,你想使用数学类。

我的问题基本上是在以下情况下计算第二个元素的x和y坐标

用于unity3d中的工具,使用c#


如果你知道x轴和这个长方体之间的角度,你可以使用一些基本的三角

假设长方体对象的长度为“len”。(这确实有助于更好地描述正在发生的事情,我不完全理解。)假设你有一个θ角

我假设圆心有坐标(0,0)

然后,从圆心到长方体接触的圆边缘的垂直距离为y=len*sin(θ),水平距离为len*cos(θ)

如果你只走了盒子的2/5,你会用len/5而不是len


这只是背后的数学问题。在c#中,你想使用数学类。它具有您需要的所有功能。注意弧度和度数

我猜你有A和B的坐标。用以下公式求第二条直线的角度:

float angle = atan2(B.y-A.y, B.x-A.x)
仅当您的情况与图表中的轴对齐时(即,如果原始配置沿x轴对齐),此选项才有效。如果没有,您可以为
角度
(您将需要一个Arcin——sin的倒数)求解公式
|uxv |=|U | | V | sin(角度)
(需要一个Arcin),其中
U
V
是新旧
AB
向量

然后围绕
A
旋转您的兴趣点(称之为
p
)。首先从
P
中减去
A
的坐标,使旋转轴位于原点。然后通过乘以旋转矩阵旋转
P

[ cos(angle)    -sin(angle) ]  [ P.x ]
[ sin(angle)     cos(angle) ]  [ P.y ]

x = cos(angle) * P.x - sin(angle) * P.y
y = sin(angle) * P.x + cos(angle) * P.y
完成这些后,将
A
的坐标添加回

总之:

P_new = A + rotate(P_old - A)

实际的代码将比这更复杂,但这是抽象的图片。我将把编码留给您。

看起来像是定期旋转-到底是什么问题?你不知道安格尔?或者你不知道旋转后如何计算坐标?还是别的?是的,旋转后如何计算坐标?非常感谢你的回复,但我已经更新了图像。我们现在有位置A和B。