Witaj Gościu ( Zaloguj | Rejestruj )

 
Reply to this topicStart new topic
[C++ & Allegro] Fraktal-obrót o kąt
effendi
post pią, 29 sty 2010 - 13:21
Post #1


Nowy na forum


Grupa: Użytkownicy
Postów: 3
Dołączył: pią, 29 sty 10
Nr użytkownika: 2,029



Witam wszystkich forumowiczów. Przedstawię Wam swój problem i mam nadzieję, iż znajdzie się ktoś, kto potrafi mi pomóc smile.gif Moim zadaniem jest napisanie programu, który będzie rysował fraktal-wybrałem sobie na początek krzywą von Kocha. Do rozwiązania problemu używam C++ i biblioteki graficznej Allegro. W końcu dochodzę do sedna: nie mam pomysłu, w jaki sposób rysując poszczególne odcinki krzywej obracać się o dany kąt, tzn. po narysowaniu boku muszę np. obrócić się o kąt 60 stopni, narysować kolejny bok, obrót o -120 stopni, itd... Czekam na pomysły, być może jest gotowa f-cja, której nie znam.
Go to the top of the page
 
+Quote Post
Jason
post pią, 29 sty 2010 - 16:08
Post #2


Avatar


Grupa: Super użytkownicy
Postów: 948
Dołączył: sob, 08 paź 05
Skąd: Hell
Nr użytkownika: 6



Jak możesz zrobić inny fraktal to zrób trójkąt Sierpińskiego (na stronie jest kod źródłowy w OpenGL) albo dywan Sierpińskiego - jedne z najprostszych fraktali. http://fraktale.stach.org.pl/index.php/prz...e-sierpinskiego

Mi osobiście na wykładzie z grafiki komputerowej najbardziej podobały się drzewa Pitagorejskie smile.gif http://fraktale.stach.org.pl/index.php/prz...a-pitagorejskie
Go to the top of the page
 
+Quote Post
effendi
post pon, 01 lut 2010 - 19:04
Post #3


Nowy na forum


Grupa: Użytkownicy
Postów: 3
Dołączył: pią, 29 sty 10
Nr użytkownika: 2,029



Problem już rozwiązałem, operując na współrzędnych. Znalazłem taki oto wzorek na współrzędne wierzchołka trójkąta równobocznego utworzonego po podziale odcinka na 3 części:
x=(x1+x2)/2 + (y2-y1)*sqrt(3)/6
y=(y1+y2)/2 - (x2-x1)*sqrt(3)/6
gdzie x1,y1 to współrzędne początku odcinka a x2,y2 - końca.
Niestety nie rozumiem jak został wyprowadzony, tzn. wiem że ukryta tu jest wysokość trójkąta równobocznego podzielona przez 3 (sqrt(3)/6) lecz nadal nie wiem skąd się wziął ten wzór smile.gif
Go to the top of the page
 
+Quote Post
Jason
post pon, 01 lut 2010 - 19:23
Post #4


Avatar


Grupa: Super użytkownicy
Postów: 948
Dołączył: sob, 08 paź 05
Skąd: Hell
Nr użytkownika: 6



CYTAT(effendi @ pon, 01 lut 2010 - 19:04) *

lecz nadal nie wiem skąd się wziął ten wzór smile.gif

Inżynieria odwrotna się kłania biggrin.gif
Go to the top of the page
 
+Quote Post
effendi
post pon, 01 lut 2010 - 20:08
Post #5


Nowy na forum


Grupa: Użytkownicy
Postów: 3
Dołączył: pią, 29 sty 10
Nr użytkownika: 2,029



Hmm, to mi wiele nie daje, gdyż nie wiem jak ją zastosować sad.gif
Go to the top of the page
 
+Quote Post
Force
post sob, 06 mar 2010 - 13:46
Post #6


Nowy na forum


Grupa: Super użytkownicy
Postów: 1,205
Dołączył: pią, 01 wrz 06
Nr użytkownika: 380



Tak, wiem, że miesiac minął, ale rzadko wchodziłem, a widzę, że problem nie rozwiązano tylko rzuca się trudne słowa jak inżynieria czy kopytko
link
mnożenie przez sqrt(3)/6 opraz dzielenie przez 2 to są wyniki funkcji trygonometrycznych sin i cos z tamtego wzoru (pewnie dla kata 60 stopni, choć wg mnie być może masz złe nawiasy), to (x1+x2) i 3 pozostałe to w mojej ocenie przystosowanie Twojego rpoblemu do tego co jest na wikipedii - tam jest obracanie wokół punktu (0,0), Ty może masz inny punkt obrotu - nie znam się na fraktalach, ale wg mnie dobrze myślę i to co napisałem powinno Ci pomóc;)


--------------------
Wszystko co kochasz i potrzebujesz znajdziesz na serwisach randkowych i http://fp.unit1.pl
Baza tysięcy lotnisk: http://airportsbase.com
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: środa, 08 wrzesień 2010 - 13:36