Wpis z mikrobloga

@Kuczer: proponuje w inny sposób obliczyć kąty. Mam wzór na obliczenie kątą początkowego i końcowego

int AngleBetween(myPoint2D a, myPoint2D b)
{
float angle = atan2(a.y - b.y, a.x - b.x);
return angle * 180
  • Odpowiedz
@DivideByZero: Dobrze masz już kąt między dwoma wektorami. Jedna oś jest skierowana w lewo druga w dół.
Dzielisz sobie angle na tyle części ile uważasz za słuszne, ja sugeruję podzielić na ilość stopni tzn. masz angle*PI/180 i z tego część całkowita. Zaczynasz rysować od punktu B i dodajesz do argumentów cosinusa i sinusa zmienną radian równą iterator * PI/180. I między tymi punktami rysujesz odcinek.
  • Odpowiedz
@DivideByZero: Masz równania. Przybliżeniem łuku jest pęk cięciw rysowanych co kąt deltabeta. Gdy delta beta dąży do nieskończoności to masz okrąg. Więc dzielisz beta na n segmentów i potem iterujesz znajdując nowe punkty i rysujesz kolejne cięciwy. U mnie np. dwie.
Aby to zrobić potrzebujesz (do wyboru):
1. punkty O, A, beta
2. punkt O, R, alpha, beta
3. punkty O, A, B
Pamiętaj, że po każdej iteracji alpha
Kontestator - @DivideByZero: Masz równania. Przybliżeniem łuku jest pęk cięciw rysowa...

źródło: comment_DN47AhMU0k1h2vgS46XdYU2S0jlI6ZJH.jpg

Pobierz
  • Odpowiedz