Minulla on neljä pistettä 3d-ympäristössä, joista kolme ovat kolmion kärkipisteitä. Miten lasken, onko neljäs piste kolmion sisällä, kun kaikki pisteet ovat samalla pinnalla?
Kun osaat laskea, onko piste samalla tasolla kuin kolmio, tiedät varmaankin myös, että muussa tapauksessa vastauksen etumerkki kertoo, kummalla puolella tasoa piste on, olettaen, että lasket käyttäen tason kaavaa (aX + bY + cZ + d = 0, [a, b, c] = tason normaali). Kaavasta saa suoraan 2-ulotteisen version (jolla siis selvitetään, kummalla puolella jotakin suoraa tietty piste on), ja kahdella eri suunnista katsotulla 2-ulotteisella tarkistuksella saa 3D-vastauksen. En nyt jaksa kaavaa tähän väsätä, ehkä huomenna.
Ota vektorit neljännestä pisteestä kärkipisteisiin. Summaa näiden vektorien väliset kulmat: jos tulee 360 astetta tai 2*pi radiaania, kyseessä on ympyrä, ja näin ollen piste on kolmion sisällä. Muulloin piste on ulkopuolella.
Mihin tätä muuten tarvitsit, ihan mielenkiinnosta?
Tuota kulmien laskemista en mielelläni käyttäisi, menee liian hankalaksi ja hitaaksi 3d:ssä. Tarvitsen sitä tekemäni pelin törmäystarkistukseen (kun lasken leikkaako jana kolmion). Eli olen jo laskenut janan ja pinnan leikkauspisteen, nyt pitäisi laskea onko piste kolmion sisällä.
Raytracingin Triangle-Ray intersection -koodista pitäisi olla suhteellisen helppoa johtaa jana-kolmio törmäystarkistus.
Tällöin ei tarvitse välittää oikeastaan ollenkaan Metabolixin mainitsemasta tasosta.
Tässä loistava dokumentaatio asiasta.
Ongelma ratkesikin jo, tuolla Metabolixin keinolla. Kiitos paljon kaikille!
Aihe on jo aika vanha, joten et voi enää vastata siihen.