Exigo Opublikowano 5 Kwietnia 2012 Udostępnij Opublikowano 5 Kwietnia 2012 Zamysł jest taki, żeby współrzędne punktów trójkąta były uporządkowane wedle wskazówek zegara. Wydaje mi się że najprościej będzie sprawdzić czy ciąg jest "nie-uporządkowany", i jeśli warunek zostanie spełniony, zamienić pozycjami jakiekolwiek wierzchołki. Problemem jest opracowanie sprawdzania kolejności. Ma ktoś jakiś pomysł? Bo ja nie. ^^ (współrzędne w dwóch wymiarach) @Edit: Dobra, rozkminiłem. (parzyste komórki to X, nieparzyste Y, na "i" nie zwracać uwagi (pierwszy wymiar tablicy)) GML _da = point_direction(trip[i, 0], trip[i, 1], trip[i, 2], trip[i, 3]); _db = point_direction(trip[i, 2], trip[i, 3], trip[i, 4], trip[i, 5]); _a = ((((_da - _db) mod 360) + 360 + 180) mod 360) - 180; if (_a < 0) { show_message('switch!'); _x = trip[i, 0]; _y = trip[i, 1]; trip[i, 0] = trip[i, 2]; trip[i, 1] = trip[i, 3]; trip[i, 2] = _x; trip[i, 3] = _y; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 5 Kwietnia 2012 Udostępnij Opublikowano 5 Kwietnia 2012 http://www.gmlscripts.com/script/is_clockwise Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 6 Kwietnia 2012 Udostępnij Opublikowano 6 Kwietnia 2012 Jest taki fajny algorytm, nazywa się zamiatanie polarne. Bierzesz współrzędne punktów, wyliczasz środek, później wyliczasz kąt nachylenia punktów względem środka i na podstawie tego współczynnika sortujesz punkty. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się