我有一组(点std::pair
的double
在2D计划),我想面具(至极是一个封闭的轮廓:方形,圆形,多边形......)适用于它。如果遮罩(或遮罩下)包含一个点,则该点不会出现,否则会出现。
例如,如果掩模是用矩形(m_x,m_y)
的左上角和的坐标m_width
和m_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] 删除。
我来说两句