figury ort! w pascalu

0

czy wie ktos jak narysowac figure przestrzenną w pascalu.np.sześcian,czworoscian,stożek itp.jak napisac taki program????

0

W Pascalu czy w Delphi? Poza tym, nie miejmy złudzeń: grafika 3D jest zagadniniem bardzo złożonym. Nie wiem czy mozliwe byłoby wyjaśnienie najprostrzych rzeczy na forum. Silnik 3d w pascalu, który pisałem liczy sobie: 521+544+892+1863+475+175 = 4470 wierszy kodu źródłowego. Generalnie, samo narysowanie, np. sześcianu wymaga użycia przestrzennego kartezjańskiego układu współrzędnych, tak więc każdy punkt jest opisany A(x,y,z). Problem zaczyna się, gdy przychodzi do transformacji obiektu, ukrywania niewidocznych krawędzi i cieniowania. Jeżeli możesz to sprecyzuj sposób wyświetlania owego sześcianu. Nie wiem, czy ma to być metoda punktowa (samie ort!), druciana, met. trójkątów cieniowanych płasko, teksturowana czy teksturowana z korekcją. Tu masz mojego maila: [email protected]. Pisz. Coś na ten temat zaradzimy.
Tu masz przykład wzorów na obroty:

    { obrot wokol osi X }
    TZ := Tab[wi].Y*TabSin[kx] + Tab[wi].Z*TabCos[kx];
    TY := Tab[wi].Y*TabCos[kx] - Tab[wi].Z*TabSin[kx];
    Tab[wi].Y := TY;
    Tab[wi].Z := TZ;
    { obrot wokol osi Y }
    TX := Tab[wi].Z*TabSin[ky] + Tab[wi].X*TabCos[ky];
    TZ := Tab[wi].Z*TabCos[ky] - Tab[wi].X*TabSin[ky];
    Tab[wi].X := TX;
    Tab[wi].Z := TZ;
    { obrot wokol osi Z }
    TX := Tab[wi].Y*TabSin[kz] + Tab[wi].X*TabCos[kz];
    TY := Tab[wi].Y*TabCos[kz] - Tab[wi].X*TabSin[kz];
    Tab[wi].X := TX;
    Tab[wi].Y := TY;
0

Proste przyklady przewijaly sie ostatnio na forum (http://4programmers.net/Forum/viewtopic.php?id=91061). Bez ukrywnia niewidocznych scian (krawedzi) to tak tragicznie nie jest (vide C=64 i druciaki w assemblerze). Wzglednie moge poszukac po dysku, bo gdzies mialem prosty szescian w TP 7.0, ale raczej polecam wlasne studia...

1 użytkowników online, w tym zalogowanych: 0, gości: 1