C ++ / Qt中的闭合轮廓

6月11日

我有一组(点std::pairdouble在2D计划),我想面具(至极是一个封闭的轮廓:方形,圆形,多边形......)适用于它。如果遮罩(或遮罩下)包含一个点,则该点不会出现,否则会出现。

例如,如果掩模是用矩形(m_x,m_y)的左上角和的坐标m_widthm_height其宽度和高度,点会被包含在掩模(并且不应当出现)如果:

if (x >= m_x && x <= m_x + m_width && y >= m_y && y <= m_y + m_height) 
        return true;

对于简单的形状(矩形,圆形)并不难,但是您会怎么做/您将如何使用它来考虑更困难的形状(例如多边形)呢?Qt(5.6)正在这样做吗?还是应该使用类似OpenCv的东西?

编辑1

Qt可以使用QPolygonF类(感谢Aurélien)来做到这一点,但是您知道std是否正在这样做吗?我们实现了数据库,而没有除std之外的任何其他库,如果可以继续下去,那将是很好的,如果不是的话,这不是问题。

奥雷利安

您可以使用QPolygonF类。

有一个QPolygonF :: containsPoint方法。

编辑

我不知道这样做的任何标准方法,但是实现起来很简单:

点在多边形算法中

http://www.codeproject.com/Tips/84226/Is-a-Point-inside-a-Polygon

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章