Wpis z mikrobloga

@DivideByZero: Mam nadzieję, że przejdzie ta ustawa...
Załóżmy, że środkiem okręgu jest (0,0), jeśli nie jest to dokonujemy zwykłej translacji.
Masz punkt_początkowy =(x1,x2)
x1= cos(alpha)* r, x2=sin(alpha)*r
Zatem mamy alpha = arccos(x1/r) lub arcsin(x2/r) (oczywiście r jest niezerowe, więc to ma sens)
Tak samo robimy z punktem końcowym. Wybierasz orientacje i rysujesz prostym algorytmem.
  • Odpowiedz
@DivideByZero: Dobra, to uporządkujmy trochę to zadanie. Po pierwsze masz wyznaczone trzy punkty:
P1(p1,p2) - Środek okręgu
P2(x1,y1) - początkowy
P3(x2,y2) - końcowy
r - promień choć nie musi być podany, bo wystarczy policzyć ||P1-P2||
Teraz trzeba się zastanowić, o który wycinek koła chodzi (czy kręcić się przeciwnie czy w stronę wskazówek zegara). Lepiej jest przyjąć orientację dodatnią czyli przeciwnie ze
  • Odpowiedz
@Kuczer: Z tym, że pewnie te wielkości są podane w radianach więc przydałoby się pewne przekształcenie liniowe. nie do końca wiem jak to wygląda w c++. Nie znam się na programowaniu
  • Odpowiedz