Musisz tylko wziąć pod uwagę kąt kamery, jeśli chcesz obrócić swój kształt w 3 wymiarach.Jeśli masz solidną wiedzę na temat algebry liniowej i trygonometrii, to jest to warte dodatkowego wysiłku, ponieważ sprawia ona, że twój program jest bardziej elastyczny, ale jeśli nie masz zbyt dużego zainteresowania matematyką, poleciłbym następujące rozwiązanie.
To, co musisz zrobić, aby rzutować obraz 3D na płaszczyznę 2D, to tworzenie i równanie, które będzie mapowane.
(x,y,z) -> (x',y')
Można to zrobić, definiując trzy odwzorowania z punktu 3D na punkt 2D.
(1,0,0) -> ( 1, 0)
(0,1,0) -> ( 0, 1)
(0,0,1) -> (-.7,-.7)
kiedyś (-.7, -. 7) dla dostępu oo ponieważ punkt około 1 jednostkę od początku, w połowie drogi pomiędzy x i y dostęp.
Po uzyskaniu tych trzech punktów masz wystarczającą ilość informacji do obliczenia dowolnego punktu x, y, z.
(x,y,z) -> (1*x - .7*z, 1*y - .7*z)
W grafice komputerowej pochodzenie siatki nie znajduje się na środku ekranu, ale w lewym górnym rogu. Aby użyć równania, które właśnie wygenerowaliśmy w naszym programie, musimy zdefiniować przesunięcie, aby przesunąć początek do środka ekranu. Nazwamy ten punkt odsunięcia (Ox, Oy).
Przy przesunięciu nasze równanie staje się następujące.
(x,y,z) -> (Ox + 1*x - .7*z, Oy + 1*y - .7*z)
Czy wiesz, na jaki samolot chcesz je wyświetlać? jak by ten samolot był podany (w jakiej formie)? – Bitwise
No cóż, nie wiem o samolocie, jednak mam funkcję, więc obliczyć punkt z biorąc xy od min. Max, a potem muszę ustawić te punkty na osi, które mam namalowane powyżej i nie mam pomysł, jak zacząć to robić, oglądałem kilka filmów o punktowaniu punktów, ale muszę rysować funkcję, więc muszę jakoś połączyć punkty, odkryłem, że musi coś zrobić z matrycą, ale dobrze, nie jestem pewien, jaką transformację macierzy należy zastosować – user2141889
Może okazać się przydatna: http: //en.wikipedia.org/wiki/3D_projection i wszystko, co z nim związane – Olexandr