Я всегда задавался вопросом, как проще всего выяснить, находится ли точка внутри треугольника или, в данном случае, прямоугольник, разрезанный пополам по диагонали.
Допустим, у меня есть прямоугольник, который64x64 пикселей.С помощью этого прямоугольника я хочу вернуть значение ИСТИНА, если пройденная точка находится в верхнем левом углу прямоугольника, и ЛОЖЬ, если это не так.
-----
| /|
| / |
|<__|
Ужас за плохое искусство ASCII.
В любом случае, гипотетические точки для этого треугольника, которые будут возвращать TRUE, будут (0,0) и (63,0) и (0, 63).Если точка приземляется на линию (например, 50,0), она также возвращает TRUE.
Предполагается, что 0,0 находится в верхнем левом углу и увеличивается вниз ...
У меня было возможное решение в моей голове, но оно кажется более сложным, чем должно быть - взять переданное значение Y, определить, где оно будет в прямоугольнике, и выяснить, где будет линиясократить на это значение Y.Например, переданное значение Y 16 будет четверть высоты прямоугольника.И, таким образом, в зависимости от того, какую сторону вы проверяли (левую или правую), линия будет либо в 16, либо в 48 пикселей, в зависимости от направления линии. В приведенном выше примере, поскольку мы тестируем верхний левый угол на высоте 16 пикселей, линия будет иметь ширину 48 пикселей
Должен быть лучший способ.
РЕДАКТИРОВАТЬ: Прямоугольник также может выглядеть так же
-----
|\ |
| \ |
|__>|
Но я полагаю, что в большинстве случаев уже предоставленные текущие ответы должны все еще держаться ...