gpt4 book ai didi

c# - 如果数字在阈值内,则捕捉到角度

转载 作者:行者123 更新时间:2023-12-04 10:52:05 25 4
gpt4 key购买 nike

我想知道检查角度是否在特定角度的某个阈值内的简单方法是什么。

说 45 度,我目前可以得到 45 度的精确倍数,但我希望两边的 10 度余量也对整个 360 度圆有效。但不确定一个干净的方法来做到这一点。

这是我目前所拥有的:

float angle = Vector3.SignedAngle(currentGrid.Vector3,Vector3.right, Vector3.up); //[-180,180]
angle += 360;
angle %= 360; //[0,360]
int angle2 = (int)(Mathf.RoundToInt(angle / 5f) * 5f); //snap to nearest 5 degrees

if (angle2 % 45 == 0 || /*angle is within threshold of a multiple of 45 degrees*/ ){
print("Hello");
}

有没有办法在没有大量 if 检查每 45 度角的情况下做到这一点?

最佳答案

您可以按照用于 5° 的相同方式进行操作:

var closest45 = (int)(Mathf.RoundToInt(angle2 / 45f) * 45f);
if(Math.Abs(closest45 - angle2) < 10) //allow a 10° tolerance to either side
angle2 = closest45;

关于c# - 如果数字在阈值内,则捕捉到角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59433023/

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