michals9 Napisano Marzec 24, 2009 Zgłoś Share Napisano Marzec 24, 2009 Witam, mam następujący problem: Przy użyciu klasy rysującej JsGraphics rysuję na ekranie wielokąt. Następnie jest losowo generowany punkt na osi współrzędnych, który również jest rysowany na ekranie. Zarówno współrzędne wierzchołków figury jak i współrzędne wylosowanego punktu są przechowywane w tablicach. Chciałbym aby po wciśnięciu przycisku wyświetlał się alert informujący czy ten punkt znajduje się wewnątrz figury. Skorzystałem z algorytmu przynależności punktu do wielokąta, a właściwie z jego implementacji w Javie znajdującej się na: http://www.algorytm.org/index.php?option=c...id=72&Itemid=28. Problem w tym, że w przypadku Javy algorytm działa prawidłowo. Jeśli zaś zastosuję go w moim skrypcie js, podaje on błędne dane. Czy może to być spowodowane różnicą między standardowym układem współrzędnych a układem współrzędnych dokumentu w przeglądarce? Link do komentarza Udostępnij na innych stronach More sharing options...
Blind Napisano Marzec 24, 2009 Zgłoś Share Napisano Marzec 24, 2009 debuguj js-a i jave jednoczesnie zobacz gdzie pojawia sie roznica bo na 99% wina jest po twojej stronie www.blinder.pl - Blog Link do komentarza Udostępnij na innych stronach More sharing options...
lewymati Napisano Marzec 24, 2009 Zgłoś Share Napisano Marzec 24, 2009 albo najlepiej sam od początku do końca zakoduj ten algorytm... I jeszcze bardzo przydatna wskazówka... Jak widzisz teraz masz mnóstwo przypadków, że w tej półprostej może zawierać się jakiś bok wielokąta. Jeśli wielokąt ma współrzędne całkowite, to można wybrać sobie tą półprostą w bardzo sprytny sposób. Otóż musisz znaleźć wierzchołek, który leży najbardziej na prawo(ma największą współrzędną x)(to jest jedna pętelka). Niech ten wierzchołek leży w punkcie (x2,y2) Jeśli twój losowy punkt do sprawdzenia ma współrzędne (x1,y1) to wystarczy, że dla każdego boku wielokąta sprawdzisz czy przecina on się z odcinkiem o początku w punkcie (x1,y1) a końcu w punkcie (x2+1,y1+1). Jeśli nieparzysta liczba boków przecina się z tym odcinkiem to punkt (x1,y1) leży w środku wielokąta. Najlepiej narysuj to sobie na przykładzie (; Jak sprawdzić czy dwa odcinki się przecinają, mam nadzieję że wiesz Dzięki takiemu rozwiązaniu nie będziesz musiał martwić się o te głupie przypadki, gdzie łatwo popełnić błąd Piszę proste programy i stronki internetowe na zlecenie, zaliczenie... Delphi, Pascal, C++, (X)HTML, CSS, trochę PHP, Javascript i MySQL Kontakt: gg:1477872 e-mail: lewymati@wp.pl Link do komentarza Udostępnij na innych stronach More sharing options...
michals9 Napisano Marzec 25, 2009 Autor Zgłoś Share Napisano Marzec 25, 2009 Algorytm zaczął działać prawidłowo w JS, gdy do końca tablic zawierających współrzędne wierzchołków figury dodałem współrzędne pierwszego wierzchołka. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.