Kare doku üçgen ile nasıl eşleştirilir?


13

P noktası için doku koordinatlarını bulmak istiyorum. Üçgenin köşeleri ve karşılık gelen uv koordinatları var.

Dokudaki küçük karelerdeki sayılar renk değerlerini temsil eder.

P'nin uv koordinatlarını hesaplamanın adımları nelerdir?

resim açıklamasını buraya girin


Her köşeyi doku koordinatına eşleştirecek bir afin dönüşüm var, bunu P'yi uv'ye eşlemek için kullanabilirsiniz.
cırcır ucube

@ratchetfreak bana bir bağlantı plz sağlayabilir misiniz?
john john

Bu makalede tek seferde kesişim noktası hesaplamasının yanı sıra barycentric kord hesaplamasının nasıl yapılacağı hakkında iyi bir yazı vardır . Bu aslında üçgeni dönüştürmek demektir.
Joojaa

Yanıtlar:


14

Bu Barycentric Interpolation ile sağlanır .

İlk olarak, barycentric koordinatlarını buluruz . Barisentrik koordinatlar, her bir tepe noktasının noktaya ne kadar katkıda bulunduğunu temsil eder ve bir üçgenin önündeki köşe noktalarında bilinen herhangi bir değeri enterpole etmek için kullanılabilir.P

3 iç üçgeni , P B C ve P C A düşünün .ABPPBCPCA

resim açıklamasını buraya girin

APPBCABC

PAPBC

1

Bariyer merkezli koordinatları hesaplama yöntemi:

BaryA=(ByCy)(PxCx)+(CxBx)(PyCy)(ByCy)(AxCx)+(CxBx)(AyCy)BaryB=(CyAy)(PxCx)+(AxCx)(PyCy)(ByCy)(AxCx)+(CxBx)(AyCy)BaryC=1BaryABaryB

Türetme ve akıl yürütme wikipedia makalesinde açıklanmaktadır .

P

Puv=BaryAAuv+BaryBBuv+BaryCCuv

Akıl yürütme de bu sunumda çok güzel açıklanmaktadır .

Ayrıca etkili hesaplama yöntemleri için bu soruya bakın .


BaryB(AyCy)

@joojaa sanmıyorum. Wikipedia makalesinde de aynı şey geçerli ve yaptığım test hesaplamasında doğru görünüyor.
Rotem

(AyCy)ACy=(AyCy)

1
P
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.