Witam.
Mam problem, muszę napisać algorytm związany z programowaniem 3D.
Ma on za zadanie wyliczyć y (głębię ekranu), po podaniu x i y (punktu), tak aby ten punkt należał do trójkąta (trzy wierczhołki z współrzędnymi x,y,z). Bardzo ważne jest, aby ten algorytm działa jak najszybciej!
Mam nadzieję że pomożecie, z góry dziękuję!
Akruat niedawno bawiłem się trójkątami :>
Na szybko wymyśliłem takie coś:
Niech punkt Q oznacza punkt którego Z szukamy.
Niech współrzędne X i Y punktu P będą takie jak współrzędne punktu Q
Niech punkt P należy do płaszczyzny N o stałym Z ( stoi sobie pionowo w przestrzeni )
Niech Z płaszczyzny Q będzie mniejsze od Z każdego punktu trójkąta ( płaszczyzna NIE przecina się z trójkątem )
Tworzymy półprostą z punktu P w keirunku punktu Q - zmieniać się będzie tylko współrzędna Z więc znormalizowany wektor będzie w formie V={0,0,1}
Przeprowadzamy zderzenie półprostej z trójkątem, algorytm powinien zwrócić odległość punktu przecięcia od trójkąta, nazwijmy tą odległość L.
Z punktu Q jest większe o L od Z punktu P
Q.Z = P.Z + L;
Googlujesz za "Ray Triangle Intersection" ( Półprosta Trójkąt Przecięcie ) I znajdujesz np Taki cuś
Teraz przestukujesz teorię tych dwóch sprytnych panów lub szukasz gotowca w necie i łączysz z moim badziewniackim algorytmikiem :>
Aha, dzięki spróbuje ;)