
Otóż, proszę sobie wyobrazić pole 100x100 kwadratów/pixeli/dowolnych obiektów.
Nastepnie gdzieś na tym polu znajduje się "oko" - punkt A(x, y).
Dla przykładu niech Ax=40, Ay=60.
"Oko" obserwuje wszystko naokoło.
Zacznijmy od punktu (0, 0). "Oko patrzy" na ten punkt po jakiejś lini.
Chciałbym móc określić współrzędne tej lini od punktu (Ax, Ay) do (0, 0) w tablicę.
Następnie oko przekręca się w prawo i patrzy na punkt (1, 0)... następnie (n, 0), (100, 0). "Oko" patrzy po obwodzie okręgu oczywiście, więc następnym punktem będzie (100, 1), potem (100, 2) itd.
Chciałbym dla każdej lini/promienia zbudować mniej więcej taką tablicę:
$promien[n]="x,y";
gdzie n to długość promienia.
Mam nadzieję, że nikogo nie razi pseudo kod, ale uczono mnie, że to pomoga jaśniej wyjaśnić o co chodzi :]
Docelowo ująłbym to taki w pseudokod:
<?php FOR (Bx=0 By=0, wykonuj pętlę aż zakreślisz pełny obwód koła po którym patrzy 'oko', Bx++ By++) //zwraca współrzędne Bx i By* { $r=promień (tak naprawdę to długość wektora (Ax Ay) -> (Bx By)) FOR ( $i=0; $i<=$r; $i++) //po kolei każda kolejna jednostka długości promienia { $wspolrzedne_r[$i]=(Rx, Ry) // Jak je określić? } } ?>
* Nie mam pomysłu jak określić pętlę, która będzie zataczać taki okrąg w układzie kartezjańskim (a tak naprawdę kwadrat, jeśli można tak napisać). Ewentualnie mógłbym zrobić 4 pętle dla każego boku kwadratu.
Największy problem stanowi dla mnie określenie kolejnych współrzędnych poszczególnych odcinków promienia/wektora.
Wynikiem tego w każdej pętli będzie taka tablica:
$wspolrzedne_r[]=array("x1,y1", "x2,y2", "x3,y3", "xn, yn");
Oczywiście współrzędne xn=Bx i yn=By.