Posted by: bugraphicslab | March 24, 2011

Dortgenlerin Cakismasi

Bir arkadasiniz projesi ile ilgili soru sormustu fakat sordugu soru aslinda oyun ve grafik programlamada da yeri olan ve hepimizin bilmesi gereken bir durum. Dortgenlerin birbirleriyle cakisip cakismadigi, yada bir dortgen digerinin icinde mi degil mi? Bu konular aslinda frustum culling`den tutunda temel fizik karsilastirmalarina kadar hepsi icin gecerli bir durum.

Peki dortgenlerin kesisme durumunu nasil inceleriz.

Arkadasiniza ornek gosterdigi durumlar icin dogru demistim fakat o anda diger durumlari gozden gecirmemistik.

Dortgenlerimiz eger x ve y eksenleri uzerinde konumlanmis ise

arkadaslarimizin gosterdigi ornekte oldugu gibi

iki dortgenin de x ve y eksenlerinin birbirlerine gore karsliastirilmasi yeterli olacaktir.

x1d1<x1d2<x2d1   (dortgen 1 ve dortgen 2`nin x koordinatlarinin karsilastirilmasi)

Fakat arkadaslar dortgenlerimiz farkli yapida iseler ornegin dortgenlerimiz x ve y eksenleri uzerinde degil de

X,Y koordinat duzleminde herhangi bir durumda bulunuyorlar ise x ve y eksenlerimizin karsilastirilmasi sol tarafta gordugunuz gibi iki dortgenin ic ice oldugunu kanitlamaz. (Yukaridaki durum gecersiz klinir)

Yada ornegin dortgenlerimiz konveks ve konkav yapilarinin herhangi birinde de olabilir.

Bu durumda da arkadaslar sadece x ve y kordinatlarinin buyuk ve kucuk olmasi durumu incelenirse dortgenlerimizin cakisip cakismadiklarini yanlis degerlendirmis oluruz.

Peki bu sorunu nasil cozebiliriz.

How To Determine If A Point Is In A Triangle Plane:

http://nehe.gamedev.net/data/articles/article.asp?article=10

Konu ve cozumu hakkinda yazilmis guzel bir yazi ve yukaridaki durumlar icin de ayni cozum kullanilabilir. (Ozellikle “Additional Information” kismini incelemenizi tavsiye ederim.)

Ayrica asagidaki video’dan da daha ayrintili bilgiye ulasabilirsiniz.

Proje ve calismalarinizda kolayliklar dilerim.

Ars.Gor.Emre GUNGOR

(Not: Hatasiz kul olmaz hatalarimiz konusunda yardimci olmak icin yorum kisimlarini kullanabilirsiniz.)

(Turkce karakter sorunu klavyeden kaynaklidir.)


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: