检查区域内是否有点(x,y)的算法?
An algorithm for check if a dot(x,y) in inside an area?
假设这张图片中的每条黑线都可以描述为一个方程 y = Ki*x + Mi
其中 Ki
是 i:th 斜率,Mi
是 i:th 直线方程的偏差。我也知道每一个角落的线条。
蓝色的是我的数据。我的问题是我想选择一个坐标为 x,y
的点并将其放置在线条创建的区域内,然后我将返回 YES
或 NO
.
但我不知道该怎么做。我的问题是:这个问题有算法吗,还是我必须用很多if-statements
来解决这种area
问题?
检查 (y - Ki * x - Mi) 的符号对于所有底边都是正的,对于所有顶边都是负的。
对于N个边,这恰好是N个测试:-)
如果您不知道哪个是底部和顶部边缘,您可以测试符号是否与已知位于内部的任何点相同。
假设这张图片中的每条黑线都可以描述为一个方程 y = Ki*x + Mi
其中 Ki
是 i:th 斜率,Mi
是 i:th 直线方程的偏差。我也知道每一个角落的线条。
蓝色的是我的数据。我的问题是我想选择一个坐标为 x,y
的点并将其放置在线条创建的区域内,然后我将返回 YES
或 NO
.
但我不知道该怎么做。我的问题是:这个问题有算法吗,还是我必须用很多if-statements
来解决这种area
问题?
检查 (y - Ki * x - Mi) 的符号对于所有底边都是正的,对于所有顶边都是负的。
对于N个边,这恰好是N个测试:-)
如果您不知道哪个是底部和顶部边缘,您可以测试符号是否与已知位于内部的任何点相同。