[3D] Help

0

Robie szkielet pomieszczenia w 13H w trojwymiarze, ustaliłem juz ten punkt w srodku monitora, symbolizuje go u mnie piksel (punkty odniesienia wg. twierdzenia talesa z XS,YS i zmienna D). Powiedzmy ze wszystko jest na swoim miejscu. Teraz moje pytanie. Jak chce narysowac linie w trojwymiarze prowadzaca w glab to musze ja narysowac takjak funkcje rosnaca. Ale skad wiem pod jakim kontem i w jakiej skali. Zakładam, ze linia w rzeczywistosci ma 4m. , to w skali 1:2 ma 2:) logiczne ale jak ja ulozyc w przestrzeni. No potrzebuje chyba 3 wsporzednych i kata . Nie wiem no help. Tylko stronek mam pod dostatkiem :&gt--Pozdrawiam
Gw

0

może tak, każdą rodzinę prostych w przestrzeni można scharakteryzować jako wektor jednostkowy (wersor) określający jednoznacznie kierunek w przestrzeni w jakim "leżą" wszystkie proste danej rodziny. Długość wersora jest z założenia równa 1 (moduł wersora). Wszystko czego ci zatem potrzeba to znajomość wersora, długości danej prostej (lini) i punktu początkowego w przestrzeni. Znając długość lini wiesz ile wersorów trzeba ustawić jeden za drugim aby otrzymać zadaną długość lini.
Doadawanie wektorów mam nadzieję masz opanowane :-) . Znając teraz punkt początkowy w przestrzeni obliczysz prosto punkt końcowy. A jak to już masz to chyba nic więcej ci nie trzeba ;)

Powodzenia--Michał
TJS group
delphi 5,6
" Praktyka - to jest wtedy gdy wszystko działa lecz nikt nie wie dlaczego
Teoria - jest wtedy gdy nic nie działa ale wszyscy wiedzą dlaczego,
My łączymy teorię z praktyką
NIC NIE DZIAŁA I NIKT NIE WIE DLACZEGO "

0

Pisałem kiedyś moduł 3D do Pascala i rysowanie linii zrobiłem następująco:

Bierzesz współrzędne początku i końca w 3D [x1, y1, z1] i [x2, y2, z2]. Przekształcasz je na 2D: wg odległości użytkownika od monitora ustalasz perspektywę, np: [320, 240, -500] i reszta jest prosta. Rozrysuj to sobie na kartce w rzucie z góry i będziesz miał wzór na zależność [x, y] od [x1, y1, z1] i położenia obserwatora. Mając współrzędne rzutów punktów na płaszczyznę monitora rysujesz po prostu linię.--Vogel [Delphi 6 PE]

Life is just a dream, you know...
[Cowboy Bebop]

0

Ok powiedzmy ze znam punkt poczatkowy i długosc lini. Ale jak wstawic ten wersor, tak jak miałbym wstawiac dana linie tyle ze w odpowiedniej proporcji? I skad wiadomo ile wersorow mam umiescic zeby wszystko sie zgadzało.?
Czy jest na to jakis przykład?
Dzieki za odpowiedzi, powoli mnie oswieca.--Pozdrawiam
Gw

0

G W napisał:

&gt Ok powiedzmy ze znam punkt poczatkowy i długosc lini. Ale jak wstawic ten &gtwersor, tak jak miałbym wstawiac dana linie tyle ze w odpowiedniej proporcji? I &gtskad wiadomo ile wersorow mam umiescic zeby wszystko sie zgadzało.?
&gtCzy jest na to jakis przykład?
&gtDzieki za odpowiedzi, powoli mnie oswieca.

Propocję to ty musisz ustalić tak aby móc obliczać odpowiednie odległości.

Jeżeli znasz długość lini, którą chcesz narysować to znasz ilość wersorów bo jest ona równa liczbowo długości lini. Tzn. jeżeli linia ma być długa na 12 jednostek miary to znaczy, że musimy użyć 12 wersorów ;) (wersor ma długość równą 1 jednostkę miary)

Znając teraz punkt początkowy lini w przestrzeni obliczasz gdzie jest jej punkt końcowy. Zaznaczam w przestrzeni!

No a potem wykonujesz rzut prostopadły na płaszczyznę ekranu (w efekcie otrymując
współrzędne początku i końca lini w płaszczyźnie ekranu)

pozdr --Michał
TJS group
delphi 5,6
" Praktyka - to jest wtedy gdy wszystko działa lecz nikt nie wie dlaczego
Teoria - jest wtedy gdy nic nie działa ale wszyscy wiedzą dlaczego,
My łączymy teorię z praktyką
NIC NIE DZIAŁA I NIKT NIE WIE DLACZEGO "

0

ec_mike napisał:
No a potem wykonujesz rzut prostopadły na płaszczyznę ekranu (w efekcie otrymując
współrzędne początku i końca lini w płaszczyźnie ekranu)

A czy rzut prostopadły uwzględnia perspektywę?--Vogel [Delphi 6 PE]

Life is just a dream, you know...
[Cowboy Bebop]

0

No wlasnie? A czy tym samym jesli obiore punkt koncowy znajac dlugosc linii to zawsze bedzie dobrze odwzorowane w przestrzeni? Jejq ale to skomplikowane :&lt--Pozdrawiam
Gw

0

Kiedyś coś takiego pisałem, jak znajdę to podeślę źródła...--Vogel [Delphi 6 PE]

Life is just a dream, you know...
[Cowboy Bebop]

0

Bardzo bardzo bardzo mi na tym zalezy. Prosiłbym z całego serca!!!--Pozdrawiam
Gw

0

Grekk w przestrzeni wszystko będzie ok. Ale Vogel ma rację, co do perspektywy trzeba najprościej rzutować na płaszczyznę w której znajduje się obserwator i potem znając odległość (zakładając ją) od niego do środka ekranu wykorzystać talesa do modyfikacji współrzędnych. {wstyd}

Vogel a ile przyjmowałeś, że ta odległość wynosi?

pozdrowienia i powodzenia--Michał
TJS group
delphi 5,6
" Praktyka - to jest wtedy gdy wszystko działa lecz nikt nie wie dlaczego
Teoria - jest wtedy gdy nic nie działa ale wszyscy wiedzą dlaczego,
My łączymy teorię z praktyką
NIC NIE DZIAŁA I NIKT NIE WIE DLACZEGO "

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