看二维向量的方向

问题描述 投票:0回答:2

我正在尝试制作一个简单的应用程序,将角色旋转为查看相对于其当前位置的向量。

旋转值范围为 0 - 180 和 -180 - 0。

数学不是我的强项,如果可以解释 C# 代码示例,我将不胜感激,我需要在上述范围内将值设置到旋转变量中。

c# math 2d
2个回答
3
投票

使用

Atan2()
函数将相对 xy 位置转换为角度

double dx = target.X - actor.X;
double dy = target.Y - actor.Y;
double angle = Math.Atan2(dy, dx) * 180 / Math.PI;

或者,用

float
:

float dx = target.X - actor.X;
float dy = target.Y - actor.Y;
float angle = MathF.Atan2(dy, dx) * 180 / MathF.PI;

1
投票

可以通过将向量转换为极坐标符号(r,theta)来计算角度: http://en.wikipedia.org/wiki/Polar_coordinate_system#Converting_ Between_polar_and_Cartesian_coordinates

要从 x 和 y 获取 theata,您可以使用 http://msdn.microsoft.com/en-us/library/system.math.atan2.aspx

干杯。

© www.soinside.com 2019 - 2024. All rights reserved.