Я пытаюсь найти пересечение между отрезком линии и квадратичным треугольником Безье для моего трассировщика лучей OpenCL в реальном времени.
В этом вопросе Обнаружить и найти луч пересечения и кубический треугольник Безье говорится о поиске точка столкновения между лучом и кубическим треугольником Безье, и основные рекомендации заключаются в том, чтобы попробовать разделение или тензорные произведения Безье патчей.
Я читал в нескольких местах, что при тестировании отрезка линии по сравнению с квадратичным треугольником Безье вам просто приходится решать квадратное уравнение, но я не нашел никакой информации о том, что это за уравнение на самом деле, и начинаю интересно, правда ли это. Мои попытки найти его пока не увенчались успехом: P
Кто-нибудь знает, правда ли это или как решить эту проблему, кроме использования патчей Безье для подразделения или тензорного продукта?
Вот уравнение квадратного треугольника Безье:
AS^2 + 2*DST + 2*ESU + B*T^2 + 2*FTU + C*U^2
Где S, T, U - параметры треугольника. Вы можете заменить U на (1-S-T), поскольку они являются барицентрическими координатами.
A, B, C - углы треугольника, а D, E, F - контрольные точки по краям.
Супер тупик на этом!