【问题标题】:An algorithm for check if a dot(x,y) in inside an area?检查区域内是否有点(x,y)的算法?
【发布时间】:2021-12-26 22:18:31
【问题描述】:

假设这张图片中的每条黑线都可以描述为一个方程y = Ki*x + Mi,其中Ki 是第i 个斜率,Mi 是直线方程的第i 个偏差。我也知道线条每个角落的点。

蓝色是我的数据。我的问题是我想选择一个坐标为x,y 的点并将其放在线条创建的区域内,然后我将得到一个YESNO 返回。

但我不知道该怎么做。我的问题是:这个问题有算法吗,还是我必须使用很多if-statements来解决这种area问题?

【问题讨论】:

    标签: geometry constraints computational-geometry area


    【解决方案1】:

    检查 (y - Ki * x - Mi) 的符号对于所有底部边缘是否为正,对于所有顶部边缘是否为负。

    对于 N 面,这正好是 N 个测试 :-)


    如果您不知道底边和顶边,您可以测试符号是否与已知在内部的任何点相同。

    【讨论】:

    • 是的!我昨天解决了这个问题。多边形中的点算法。在 GitHub 上尝试 CControl 中的算法
    • 我描述的是point-in-convex-polygon算法。它更简单。
    • 我已经尝试过这个算法github.com/DanielMartensson/CControl/blob/master/src/CControl/…,它与 MATLAB 的 `inpolygon' 算法完美配合。
    • 如果你想试试。
    • @MrYui:你是提问者。我绝对知道 PIP 算法!
    猜你喜欢
    • 1970-01-01
    • 2019-06-24
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多