【发布时间】:2016-09-14 22:38:04
【问题描述】:
我在 2D 平面上有一组点(std::pair 的 double),我想对其应用一个蒙版(这是一个封闭的轮廓:正方形、圆形、多边形......)。 如果一个点包含在掩码中(或掩码下),则不出现,否则出现。
例如,如果掩码是一个矩形,其左上角坐标为(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,如果我们可以继续,那就太好了,如果不是,这不是问题。
【问题讨论】:
-
不,C++ 标准库不包含任何几何基元。