C# 单位矢量3角

C# 单位矢量3角,c#,unity3d,C#,Unity3d,我在屏幕上有两点如下 var newraya = camera.ScreenPointToRay(new Vector3(200, 250, 5)); Vector3 pointa = newraya.origin; var newrayb = camera.ScreenPointToRay(new Vector3(300, 200, 5)); Vector3 pointb = newrayb.origin; 我用下面的公式试着得到90度角,但它的计算结果是26度 // angle in de

我在屏幕上有两点如下

var newraya = camera.ScreenPointToRay(new Vector3(200, 250, 5));
Vector3 pointa = newraya.origin;
var newrayb = camera.ScreenPointToRay(new Vector3(300, 200, 5));
Vector3 pointb = newrayb.origin;
我用下面的公式试着得到90度角,但它的计算结果是26度

// angle in degrees
var angleDeg = -Mathf.Atan2(pointb.y - pointa.y, pointb.x - pointa.x) * (180 / Math.PI);
我不太确定我在这件事上哪里出了问题。任何帮助都将不胜感激


谢谢。

我最后使用了下面的公式,这对我有点用。如果A点在0度或90度,我必须用if语句来表示,但中间的任何东西都可以

var angle34 = -(Mathf.Atan2((centre.y - ((pointa.y - centre.y))) - centre.y, (centre.x + ((centre.x - pointa.x))) - centre.x) * (180 / Math.PI))-90;

你为什么期望90度角?这是正确的,你找到的是26度角。求解另一个角度会得到64,最后一个角度为90(180-26-64)。如果你知道它是90,那么解决这个问题的目的是什么?如果你想快速想象的话,看看图片。谢谢你的想象,现在它有意义了。我能用什么有效的公式得到90度角?请详细说明你的问题。向我们展示屏幕截图和图形,以便我们了解您实际想要实现的目标。