Ĺadny brzuch
Jak zakończyć dowolną linię stworzoną za pomocą
Canvas->MoveTo(x,y); Canvas->LineTo(x1,y1);
strzałką ?
Problem w Borland C++ Builder 6.
Canvas->MoveTo(x1,y1);
A następnie oblicz sobie skalę długości strzałki (jak długie ma być to 'odstające' w tył w stosunku do długości kreski), i zapisz ją w jakiejś zmiennej. Następnie rysuj dwie odstające 'kreski' o długości liczonej z długości samej strzałki (skalujesz o to, co tam policzyłeś wyżej) pod odpowiednim kątem (trygonometrii się troszkę przyda - weź kartkę i ołówek).
Pozdrawiam,
TeMPOraL
Mialem podobny pomysl...
Ale za cholerę nie potrafię sobie tego wyobrazić przestrzennie tak by to zapisać w C++...
Prosic mi o gotowca trochę głupio... ale byłbym wdzieczny...
Ojej ja Ci gotowca nie dam, bo nawet jakbym chciał to nie mam dziś sił ;). Ale to nie jest takie trudne, na jakie wygląda - tylko musisz zabrać się za to jakoś systematycznie - punkt po punkcie. Poszukaj sobie informacji o obrotach w 2D. Potrzebujesz wiedzieć jak narysować kreskę pod zadanym kątem do innej kreski. W trakcie myślenia nad tym problemem być może dojdziesz do wniosku, że strzałkę można zapakować do jakiegoś obiektu reprezentującego wektor 2D. Wtedy możesz łatwo i wygodnie napisać funkcję, która przyjmując taki wektor (oraz punkt początkowy) narysuje strzałkę.
Pomysły na implementację mogą być różne - mnie się nasuwa obracanie układu współrzędnych przy rysowaniu strzałek - w taki sposób, żeby np. główna kreska strzałki była lokalnie pozioma. Ojej spać mi się chce i przestaję myśleć troszkę :) Pokombinuj po prostu.
Jak Ci się uda, to będziesz długo pamiętał, że sam to wymyśliłeś - zobaczysz, jaka to jest radość. Na prawdę ;). A i wiedza zostanie, która się kiedyś może przydać.
Pozdrawiam i dobrej nocy
TeMPOraL.
//EDIT
Idę spać, bo już się źle czuję troszkę ;)
Użytkownik TeMPOraL edytował ten post 22 styczeń 2007, 01:18
mozna przeciez prosciej - wyobraz sobie linie glowna, i linie laczaca dwie odchodzace linie
/|\
/ | \
----
|
|
ta czerwona na moim arcydziele ;) zauwaz ze ta linia jest prostopadla do twojej glownej, a jej konce to konce linii ktore chcesz narysowac. aby uzyskac punkt przeciecia sie glownej linii z ta pomocnicza wystarczy podzielic dlugosc i szerokosc linii przez procent, jaki ma zajmowac grot strzalki w stosunku do calej linii. gdy uzyskasz ten punkt, to wystarczy wyliczyc wspolrzedne lini prostopadlej do twojej glownej dodajac/odejmujac odpowiednie wartosci od tego punktu (typowe zadanie z matury z matmy ;) ). to juz pozostawiam tobie :)
//niestety skrypt forum dosuwa wiersze do lewej strony, wiec obrazek nie wyglada jak powinien, ale chyba wiadomo o co chodzi ;)
Użytkownik Deadeye edytował ten post 22 styczeń 2007, 01:29
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Canvas->MoveTo(x,y); Canvas->LineTo(x1,y1);
strzałką ?
Problem w Borland C++ Builder 6.
Canvas->MoveTo(x1,y1);
A następnie oblicz sobie skalę długości strzałki (jak długie ma być to 'odstające' w tył w stosunku do długości kreski), i zapisz ją w jakiejś zmiennej. Następnie rysuj dwie odstające 'kreski' o długości liczonej z długości samej strzałki (skalujesz o to, co tam policzyłeś wyżej) pod odpowiednim kątem (trygonometrii się troszkę przyda - weź kartkę i ołówek).
Pozdrawiam,
TeMPOraL
Mialem podobny pomysl...
Ale za cholerę nie potrafię sobie tego wyobrazić przestrzennie tak by to zapisać w C++...
Prosic mi o gotowca trochę głupio... ale byłbym wdzieczny...
Ojej ja Ci gotowca nie dam, bo nawet jakbym chciał to nie mam dziś sił ;). Ale to nie jest takie trudne, na jakie wygląda - tylko musisz zabrać się za to jakoś systematycznie - punkt po punkcie. Poszukaj sobie informacji o obrotach w 2D. Potrzebujesz wiedzieć jak narysować kreskę pod zadanym kątem do innej kreski. W trakcie myślenia nad tym problemem być może dojdziesz do wniosku, że strzałkę można zapakować do jakiegoś obiektu reprezentującego wektor 2D. Wtedy możesz łatwo i wygodnie napisać funkcję, która przyjmując taki wektor (oraz punkt początkowy) narysuje strzałkę.
Pomysły na implementację mogą być różne - mnie się nasuwa obracanie układu współrzędnych przy rysowaniu strzałek - w taki sposób, żeby np. główna kreska strzałki była lokalnie pozioma. Ojej spać mi się chce i przestaję myśleć troszkę :) Pokombinuj po prostu.
Jak Ci się uda, to będziesz długo pamiętał, że sam to wymyśliłeś - zobaczysz, jaka to jest radość. Na prawdę ;). A i wiedza zostanie, która się kiedyś może przydać.
Pozdrawiam i dobrej nocy
TeMPOraL.
//EDIT
Idę spać, bo już się źle czuję troszkę ;)
Użytkownik TeMPOraL edytował ten post 22 styczeń 2007, 01:18
mozna przeciez prosciej - wyobraz sobie linie glowna, i linie laczaca dwie odchodzace linie
/|\
/ | \
----
|
|
ta czerwona na moim arcydziele ;) zauwaz ze ta linia jest prostopadla do twojej glownej, a jej konce to konce linii ktore chcesz narysowac. aby uzyskac punkt przeciecia sie glownej linii z ta pomocnicza wystarczy podzielic dlugosc i szerokosc linii przez procent, jaki ma zajmowac grot strzalki w stosunku do calej linii. gdy uzyskasz ten punkt, to wystarczy wyliczyc wspolrzedne lini prostopadlej do twojej glownej dodajac/odejmujac odpowiednie wartosci od tego punktu (typowe zadanie z matury z matmy ;) ). to juz pozostawiam tobie :)
//niestety skrypt forum dosuwa wiersze do lewej strony, wiec obrazek nie wyglada jak powinien, ale chyba wiadomo o co chodzi ;)
Użytkownik Deadeye edytował ten post 22 styczeń 2007, 01:29