gpt4 book ai didi

c# - 是由偏离水平面大于 45 度的两点组成的线

转载 作者:行者123 更新时间:2023-11-30 19:03:50 30 4
gpt4 key购买 nike

我试图找出由两点定义的线与水平线相比是否大于或等于 90 度。这是我使用的代码

bool moreThan90 = false;
double angle = Math.Atan((double)(EndingLocation.Y - Location.Y) / (double)(EndingLocation.X - Location.X));
if (angle >= Math.PI / 2.0 || angle <= -Math.PI / 2.0)
moreThan90 = true;

我这样做是否正确,或者 .Net 中是否有更好的内置函数可以找到它?

编辑——实际上我搞砸了我的问题我想说 45 偏离水平而不是 90。但是答案让我到了一个我可以弄清楚的地步(真的我只需要指向 Atan2)。

最佳答案

与水平线成 90 度以上的线的 EndLocation.x 的 x 值将小于 Location.x。

所以你不需要所有 atan 废话,这应该足够了:

if (EndingLocation.X < Location.X)
moreThan90 = true;

编辑:

OP 似乎意味着 45 度而不是 90 度,这意味着上述简化不再成立。为此,最好使用 atan2(正如 Slaks 指出的那样)但本着不使用 tan 的精神:

if (Math.Abs(EndingLocation.X - Location.X) > Math.Abs(EndingLocation.Y - Location.Y) && 
EndingLocation.X < Location.X)
moreThan45 = true;

请注意,如果您只需要指向右侧的线,则只需要第二次检查

关于c# - 是由偏离水平面大于 45 度的两点组成的线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2850572/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com