我写了一个小程序来查找点(x,y)相对于由点(px,py)定义的直线和与x轴(角度)在笛卡尔坐标系中)。haskell浮点精度
toRadian deg = deg * (pi/180)
lineSlope deg = tan $ toRadian deg
lineYintercept (x,y) deg = y - (x * lineSlope deg)
relativePointPosition (px,py) deg (x,y)
| s < 0 && deg>=0 && deg<90 = "Left"
| s < 0 && deg>=90 && deg<180 = "Left"
| s < 0 && deg>=180 && deg<270 = "Right"
| s < 0 && deg>=270 && deg<360 = "Right"
| s > 0 && deg>=0 && deg<90 = "Right"
| s > 0 && deg>=90 && deg<180 = "Right"
| s > 0 && deg>=180 && deg<270 = "Left"
| s > 0 && deg>=270 && deg<360 = "Left"
| s > 0 && deg==360 = "Right"
| s < 0 && deg==360 = "Left"
| otherwise = "On the line"
where s = lineSlope deg * x + lineYintercept (px,py) deg - y
它的工作原理以及exceptionaly对于那些从行远点,但不是这么好是接近或点就行。 我该如何提高准确度?
总是有任意精度[科学](https://hackage.haskell.org/package/科学)号码。 – 2016-02-01 08:12:44