2015-03-16 1 views
0

Если проверить документы Qt на тесте точка-в-прямоугольнике они говорят:точка в прямоугольнике тест дилемме

BOOL QRectF :: содержит (Const QPointF & точки) Const

Возвращает истину, если данная точка находится внутри или на краю прямоугольника ; иначе возвращает false.

Это неизбежно означает, что точка может принадлежать до четырех прямоугольников, граничащих друг с другом, сразу. Существует ли аргумент в пользу этой компоновки, или было бы лучше, чтобы прямоугольник содержал только точки на некоторых ребрах (скажем, в верхнем левом углу)?

ответ

1

Документация говорит «края», а не «углы». Обычно ребро означает линию, а угол или вершина - точка.

Если вы хотите исключить края, QRect версия может это сделать.

Вы также можете написать свой собственный и проверить, находится ли точка в верхнем левом углу, используя QRectF::topLeft().

Прямоугольники также могут пересекаться, поэтому точка может содержаться в любом количестве прямоугольников одновременно.

+0

Уголки сидят по краям. Разверните свой ответ, пожалуйста. – user1095108

+0

Вы тоже краснеете, когда говорите «сверху слева»? – svlasov

+0

Да, скажем, что точка находится на верхнем или левом краю точно, тогда она будет принадлежать прямоугольнику с верхним левым концом. – user1095108