![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 5.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam układ współrzędnych powiedzmy 100x100
Chce aby pionek przeszedł z pola 1,1 na pole 11,15 Jak mogę obliczyć przez które pola przejdzie pionek(biorąc pod uwagę że idzie po przekątnej, a nie tak jak w tematach o znajdywaniu drogi, po kratkach) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
EDIT 3
Prosze tego posta nie brac pod uwage -- znow wszystko przemyslalem i zupelnie nie wiem jak rozwiazac ten problem i nie wiem czy te algorytmy sie do czegos przydadza... : ( --------------------------------- EDIT: To nie bedzie dobre rozwiazanie. Troche linkow naprowadzajacych http://en.wikipedia.org/wiki/Bresenham's_line_algorithm http://www.gamedev.net/reference/articles/article767.asp Ale nie jestem pewien czy dobrze rozwiaza ten problem. EDIT 2: jak obrocisz uklad wspolrzednych to bedziesz mogl wyliczac dla linii polozonych pod katem (45, 90o), przy normalnym ukladzie (0,45) Czyli po zastosowaniu tego alg. powinno sie udac. Moge tylko zyczyc powodzenia (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ------------------------ Cala plansza to uklad wspolrzednych (X,Y). Wyznacz roznienei prostej z tych dwoch punktow: Y(x) = Ax + B (nie dziala dla prostej pionowej -- musisz obrocic uklad wspolrz) pseudokod: Kod for ( $i = $start->x + 1; $i < $end->x; $i++ )
{ $trasa_punkty[] = new Punkt( $i, (int)Y( $i ) ); } foreach ( $trasa_punkty as $punkt ) { print( $punkt-x . ", " . $punkt->y . "<br />" ); } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 14:00 |