У меня есть бриллиант, нарисованный на панели, и я пытаюсь вычислить, находится ли положение мыши в пределах его границ. Проблема заключается в попытке алмаза, для создания фигуры необходимы четыре координаты, составляющие четыре строки. Расчет, если положение мыши находится в границах алмазного полигона
Проще всего создать или разместить квадрат в пределах алмаза, но я хочу учитывать оставшиеся треугольные области снаружи. Сначала мне казалось, что я пытаюсь вычислить наклон между двумя точками и выяснить, пересекаются ли линии x и y мыши с линией, добавив наклон в уравнение, но оказалось, что это намного сложнее, когда дело доходит до линий которые составляют TOP-> RIGHT, RIGHT-> BOTTOM и BOTTOM-> LEFT, учитывая, что центр алмаза не равен нулю.
Есть ли более простая реализация, чтобы проверить, находится ли мышь x, y в границах алмаза?
Проверьте эту тему: http://stackoverflow.com/questions/10716378/pixel-coordinates-on-diamond – brlaranjeira
Если ширина и высота алмаз равны, это тривиально. Просто воспользуйтесь отличием от центра бриллиантов и вашей точки. Если нет, попробуйте обработать алмаз как 2 треугольника и вместо этого выполнить тест на треугольник. –