1 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
你犯了兩個(gè)錯(cuò)誤。首先,您在“Return Equals(Math.Sign(value), 0);”中使用了 Sign 函數(shù),它將為任何正數(shù)提供 1 的值,為任何負(fù)數(shù)提供 -1 的值。這會破壞你使用寬容的嘗試。其次,您嘗試將差異與第一個(gè)數(shù)字“b = Math.Abs(d1 * 容差)”的比率進(jìn)行比較,這將始終返回 False。我建議你將它與寬容本身進(jìn)行比較,就像這樣。
public static bool Sign(Point Point1, Point Point2, Point point)
{
double value = (Point2.X - Point1.X) * (point.Y - Point1.Y) - (Point2.Y - Point1.Y) * (point.X - Point1.X);
return Equals(value, 0);
}
public static bool Equals(double d1, double d2, double tolerance = 0.000001)
{
double a = Math.Abs(d1 - d2);
if (a <= tolerance)
return true;
return false;
}
- 1 回答
- 0 關(guān)注
- 97 瀏覽
添加回答
舉報(bào)