2013-02-25 9 views
7

Znalazłem funkcjonalność transformacji afinicznej (obracanie, ścinanie, translacja, skalowanie) w Atenach/Kairze w Pharo Smalltalk.Jak przekształcić perspektywę z Atenami/Kairem w Pharo Smalltalk

Szukam transformacji perspektywy. Czy to w ogóle możliwe? Przynajmniej wydaje się, że nie ma na to dogodnych metod w Kairskim API.

perspective transformation

+0

Dodatkowo, powinieneś zapytać na liście dyskusyjnej Pharo. –

+1

Zapytałem listę Cairo o to kilka lat temu dla portu VisualWorks. Powiedzieli, że ich nie ma. Mimo że twórcy mieli pewne zainteresowanie, aby to zrobić w przypadku wzorców ImageSurface. Ale nie sądzę, żeby kiedykolwiek to się stało. –

Odpowiedz

6

Nie ma transformacji perspektywy, ponieważ macierze używane do obliczeń to macierze afiniczne 2x3, które nie mogą wytworzyć takiej transformacji (żadna kombinacja skali/obrotu w przestrzeni współrzędnych 2-D nie może wytworzyć takiego wyniku). OpenGL wykorzystuje pełną macierz 4x4 do transformacji współrzędnych (cóż, zwykle jest to kolumna 3x3 +), ale wystarczy stworzyć transformacje, takie jak rzutowanie perspektywiczne.

2

Ja też zawsze był zainteresowany tego rodzaju transformacji.

Nie tylko w Pharo, ale także na innych platformach, takich jak Java (Java2D) lub płótno HTML5.

Do tej pory moje wyniki wskazują, że nie wydaje się to możliwe.

Wygląda na to, że te biblioteki po prostu nie zostały opracowane z myślą o 3D lub wsparciem 3D. Wszędzie spojrzałem I 2 sugestie były głównie:

  • należy to zrobić przy użyciu OpenGL
  • wdrożenie transformacji na szczycie w Kairze/Java2D/płótno

Nie jest moim zamiarem dźwięk negatywne, Shuts chciał podzielić się moimi wynikami wyszukiwania i może zaoszczędzić trochę czasu.

Powiązane problemy