【发布时间】:2021-07-06 19:36:17
【问题描述】:
我有一个功能,我想根据角度的旋转返回要捕捉到的角度。我希望能够更改 snapPoints 数组以提供不同的捕捉点。
角度被限制在 -90 到 90 之间,我将角度加 100 以消除负数;
由于某种原因,它只返回 [-90]
private int ClosestSnapPoint()
{
int[] snapPoints = {-90, 0, 90};
float dist = 300f;
int closestPoint = 0;
foreach(int point in snapPoints){
float d = (point + 100f) - (angle + 100f);
if(dist > d){
dist = d;
closestPoint = point;
}
}
return closestPoint;
}
示例数据 -
角度 = -50,最近点 = -90
角度 = -10,最近点 = 0
角度 = 10,最近点 = 0
角度 = 50,最近点 = 90
【问题讨论】:
-
您能否为给定的输入添加一些预期结果?
-
使用
Math.Abs取绝对值,例如Math.Abs(-10)->10,Math.Abs(10)->10 -
angle来自哪里?
标签: c#