eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingWizualizacja ekwipotencjałów.
Ilość wypowiedzi w tym wątku: 2

  • 1. Data: 2010-04-08 18:20:33
    Temat: Wizualizacja ekwipotencjałów.
    Od: Jan Górski <g...@o...pl>

    Poszukuję efektywnego algorytmu umożliwiającego wizualizację linii
    łączących punkty o równym potencjale. Przykład: Wyobraźmy sobie mapę
    temperatury w Polsce. Chcemy uzyskać izotermy w zakresie warunków
    brzegowych.

    Sposób rozumowania :
    Ustalić wartość izolinii W_i i deltę, czyli jak bardzo dana wartość na
    siatce może odbiegać od założonej i nadal będzie należeć do tej
    izolinii.

    1* Przeszukać siatkę w poszukiwaniu założonej wartości W_i +/- delta,
    nie zamarkowanej. Jeśli znaleziono taką wartość, idź do 2*. Jeśli nie,
    zakończ.
    2* Po znalezieniu wartości W_i+/-delta, pozycję [x,y] danej wartości
    zamarkować
    3* Przeszukać otoczenie [x,y] w poszukiwaniu wartości w zakresie W_i
    +/- delta nie biorąc pod uwagę wartości zamarkowanych. Jeśli w
    otoczeniu brak punktów do zamarkowania, idź do 1*. Jeśli są, wróć do
    2*.


    Przyspieszenie działania i spadek rozdzielczości można uzyskać
    dokonując przekształcenia tablicy.
    1. Konwolucja uśredniająca
    2. Zmniejszenie tablicy wartości n^2 razy (co n-ta wartość z rzędu
    czytana co n-rzędów).
    Deltę można zwiększyć, bo różnice wartości ulegną zwiększeniu o
    maksymalnie ((dWart[x,y]/dx)*n) ^2+ ((dWart[x,y]/dy)*n)^2, w przypadku
    zastosowania zerowej konwolucji uśredniającej. Efekt jednak zależy od
    wielkości użytego kernela i jego wartości. Uśrednienia powinno to
    jednak wygładzić.
    Podczas rysowania linii stanowiących połączenia punktów 'zmniejszonej'
    tablicy, użyty będzie algorytm Bresenhama.


    Algorytm chcę zrealizować w C++, używając do wyświetlania SDL.

    Problem :
    1. Jak to zrobić szybciej ?
    2. Jak uniknąć problemu zbyt wysokich wartości pochodnych ( zbyt
    dużych skoków wartości kolejnych pikseli ) ?

    Punkt 2 jest kluczowy, bo delta musi być wybrana 'mądrze'. Jeśli nie
    będzie, zamiast jednej linii pojawi się cały szereg rwanych
    fragmentów.

    Dzięki za pomoc.


  • 2. Data: 2010-04-08 18:23:23
    Temat: Re: Wizualizacja ekwipotencjałów.
    Od: Jan Górski <g...@o...pl>

    Wzorek wydaje się, powinien wyglądać tak :
    sqrt(((dWart[x,y]/dx)*n)^2+ ((dWart[x,y]/dy)*n)^2);

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: