Как проверить, была ли нажата мышь внутри области треугольника во freeglut?

У меня проблема с моим маленьким проектом редактора Opengl / freeglut / c ++ 2D.

Редактор позволяет рисовать четырехугольник или треугольник (Объект). Вы можете изменить размер объекта, перетаскивая угол объекта в нужное вам место.
Вы также можете перемещать объект по экрану, если объект активен (вы нажимаете на объект, чтобы сделать его активным).

Теперь проблема, которую я имею, состоит в том, чтобы сделать область, на которую вы щелкаете, чтобы сделать объект активным. Раньше область активации была просто четырехугольником вокруг объекта (укажите ширину и высоту объекта и т. Д.) (Синие точки на рисунке показывают границы области активации)

http://i48.tinypic.com/muyh41.png

Но я хочу, чтобы область активации была областью объекта, а не квадом вокруг него.
Итак, вопрос в том, как бы вы проверили, щелкала ли мышь внутри области, как на картинке выше или ниже этого текста?

http://i49.tinypic.com/abmli8.png

1

Решение

OpenGL — это просто API для рисования, а (Free) GLUT — просто минималистичный фреймворк для создания окна с присоединенным контекстом OpenGL. Ни один из них не поможет вам там.

Вы должны вручную выполнить тест пересечения луча и треугольника

Эти ссылки могут быть интересны для вас

http://www.lighthouse3d.com/tutorials/maths/ray-triangle-intersection/

http://www.gamedev.net/topic/447861-ray—triangle-intersection-code/

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]