Linia na podstawie punktów - jak to ograniczyć?

Obiekty i przekształcenia geometryczne, opisane za pomocą układu (nie zawsze prostokątnego) współrzędnych.
juzwos
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 3 cze 2009, o 12:33
Płeć: Mężczyzna

Linia na podstawie punktów - jak to ograniczyć?

Post autor: juzwos »

Witam wszystkich - jest to mój pierwszy wpis, mam nadzieję, że umieszczam go we właściwym miejscu.

Sprawa wygląda następująco - robię programik, który na podstawie jakiś tam próbek ma tworzyć linię (akurat na wykresie), który sobie można za pomocą WWW zobaczyć, przybliżyć, oddalić itp itd.

O ile samo wykonanie nie jest problemem, to rysowanie już tak. Problem jest taki że tych punktów jest masa, dla danych z miesiąca jest tyle, że np IE nie wyrabia,a przy większej ilości pewnie i inne przeglądarki przestałyby wyrabiać. Dlatego też wymyśliłem sobie, że pewnie można ten zbiór punktów jakoś tak "obrobić", żeby ograniczyć go do niezbędnego minimum, a i tak ładna będzie linia.

Z matematyki jestem słaby, dlatego proszę o pomoc.
Założenia są takie, że linie na wykresie mogą być liniami prostymi lub łukami. Do dyspozycji mam funkcje które rysują linie(od punktu, do punktu) albo łuki o określonych parametrach.

Wejście
np 30 tyś punktów pobranych z bazy danych chronologicznie

Na wyjściu chciałbym osiągnąć np taki efekt
1,1 - 1,10 - linia
1,10-10,5 - linia
10,5 - 10,8 - łuk o zadanych parametrach
10,8-10,10 - linia

Problem polega na tym, z czego skorzystać aby to osiągnąć
- jak szybko, bez sprawdzania każdego z każdym,wykryć współliniowość(a nawet współliniowości) w danym zbiorze
- jak wykryć że pewien podzbiór (podzbiory) tworzą łuk i jak określić parametry tego łuku na tej podstawie
- a może cały zbiór można jakoś przybliżyć, znajdując punkty charakterystyczne (jak takie punkty znaleźć)

poruszam się całkowicie po omacku i nie wiem z czego i jak skorzystać, od czego zacząć, nie chodzi mi o gotowy wzór czy jakiś przepis, ale o wskazówki co jak i w jakim zakresie z tego można skorzystać, aby coś zacząć potem ewentualnie się dopytać bardziej szczegółowo, ewentualnie odpowiedź czy jest to możliwe czy się da taki wynik na podstawie takich danych dostać, a jeśli nie to, co można zamiast tego uzyskać.

Z góry dziękuję za odpowiedzi
ODPOWIEDZ