Nie mamy ani jednego wyzwania dotyczącego narysowania prawdziwej trójwymiarowej kostki, więc oto:
Wyzwanie
Twoim zadaniem jest narysowanie obróconego sześcianu z perspektywą. Może znajdować się w osobnym oknie lub jako obraz.
Wejście
Wprowadzono 3 oddzielne liczby od 0 do 359,99 ... Przedstawiają obrót wokół osi x, y i z w stopniach.
0 0 0
30 0 40
95 320 12
Wynik
Możesz wyświetlić go w osobnym oknie lub zapisać obraz. Możesz użyć dowolnego rodzaju wyświetlacza (oparty na wektorach, zrasteryzowany itp.).
Edycja: ASCII jest również dozwolony, aby zezwolić na języki gry w golfa z tylko tekstem.
Dane wyjściowe dla grafiki rasteryzowanej lub ASCII muszą wynosić co najmniej 50 * 50 (piksele dla rasteryzacji, znaki dla ASCII)
Dodatkowe informacje
Dodatnia oś Z wskazuje okno, oś X jest pozioma, a oś Y jest pionowa. Zasadniczo standard OpenGL.
Obracanie odbywa się w kierunku przeciwnym do ruchu wskazówek zegara, jeśli spojrzysz na sześcian w kierunku ujemnym określonej osi, np. Patrząc w dół w kierunku osi y.
Kamera powinna znajdować się na osi Z w rozsądnej odległości od sześcianu w ujemnym kierunku Z, sześcian powinien znajdować się w (0; 0; 0). The. sześcian musi być również w pełni widoczny i zajmować co najmniej 50% ramki rysunkowej. Kamera powinna patrzeć w sześcian w kierunku dodatnim.
Obroty sześcianu są stosowane w kolejności x-> y-> z.
Sześcian jest obracany wokół środka, nie porusza się.
Aby rzutować sześcian na przestrzeń 2d, musisz podzielić współrzędne xiy sześcianu z odległością równoległą do osi Z między punktem a kamerą.
Zasady
Biblioteki renderowania są dozwolone, ale wierzchołki muszą być zdefiniowane w kodzie. Brak klasy modelu kostki 3d.
Przypadki testowe
google will tell you the formula.
Nie , wyzwania powinny zawierać jak najwięcej materiałów i informacji potrzebnych do ich rozwiązania, zawartych w treści postu . Nie powinienem iść na googling lub na Wikipedię, żeby zacząć rozumieć.