18 maja 2017
Wojciech Jóźwiak
Serial: Astro-obserwator
Poziomice? Już wiem
◀ Harmoniczna astrologia ◀ ► Astro-wojny Izraela ►
Obszar funkcji dwóch zmiennych pokrywamy kratką punktów: W tych punktach wyliczamy wartości funkcji:
Obszar funkcji dwóch zmiennych pokrywamy kratką punktów:

W tych punktach wyliczamy wartości funkcji:

Każdy kwadrat kratki dzielimy na dwa trójkąty. Dla wierzchołków trójkąta mamy obliczoną wartość funkcji. Taki trójkąt traktujemy jak trójkątną dachówkę – wyobraź sobie tamtą funkcję jako nierówny dach pokryty trójkątnymi dachówkami. Funkcję wewnątrz i na brzegach trójkąta przybliżamy funkcją liniową dwóch zmiennych: będzie to wycinek płaszczyzny przechodzącej przez trzy punkty [A, f(A)], [B, f(B)] i [C, f(C)]. Tę płaszczyznę łatwo już jest przedstawić numerycznie. Poziomice tej płaszczyzny są (jeśli jest ich kilka) rodzinami równoległych odcinków. Te odcinki poziomicy kończą się na brzegach trójkąta ABC i od tych punktów zaczynają się odcinki poziomicy w sąsiednim trójkącie:

Proste to wszystko.
Niestety, nie jest to metoda Monte Carlo, ponieważ gdyby kratę punktów zastąpić punktami losowymi, to trzeba by je jakoś holistycznie ogarniać, w czym proste algorytmy są głupie, bo nie widzą całości.
◀ Harmoniczna astrologia ◀ ► Astro-wojny Izraela ►
Komentarze
wydaje sie, ze rozwiazaniem problemu moze byc
1 - pokrycie obszaru, ktory nas interesuje losowo wybranymi punktami
2 - zastosowanie triangulacji Delaunay’a zrealizowanej np. przy pomocy algorytmu "step by step" opublikowanego przez M.J. McCullagh, C. G. Ross w 1980.
3 - dalej tak samo jak dla siatki regularnych trojkatow jak opisujesz w artykule.
Jezeli rozwiazanie nie jest potrzebne na zaraz w ciagu kilku tygodni postaram sie przeslac oprogramowany algorytm w javie.
pozdrawiam
Jurek
Czy mógłbyś mi podesłać jakieś materiały na temat triangulacji Delaunay’a? Skan wspomnianego artykułu? Jestem pod red@taraka.pl .
Teraz wpadłem na coś łatwiejszego: wartość funkcji przedstawiać jako piksele w kolorze na skali od niebieskiego (mało) do czerwonego (dużo).
Problem taki, że jeśli tak pokryć kwadrat 1000 na 1000 punktów próbkowych, to trzeba by policzyć tę funkcję milion razy. Trochę dużo. Szczególnie, gdy tą funkcją jest podobieństwo dwóch dwóch kosmogramów, a kosmogram wymaga policzenia około 2 tysięcy sinusów. Ale nie trzeba liczyć kosmogramów w każdym punkcie kwadratu, wystarczy na brzegach, czyli tych punktów będzie 2000. Prócz tego znalazłem szybszą metodę liczenia pozycji planet. No i nie trzeba każdej planety w każdej chwili czasu liczyć ab initio, można interpolować. W sumie praca robi się krótsza, licząc czas zajęcia procesora.
Coś w rodzaju poziomic można uzyskać, rysując piksele gdzie wartość funkcji jest mniejsza od pewnego A na biało, a gdzie większa na czarno. Może jest gdzieś przenośna technologia wektoryzacji takich obrazów pikselowych.
Aby komentować Zaloguj się lub Zarejestruj w Tarace.
