Fourier-epiciklusok

Rajzolj egy zárt alakzatot, vagy tölts fel egy egyszerű, kontrasztos képet - a szerver PHP-ben, valódi diszkrét Fourier-transzformációval (DFT) bontja fel a görbét forgó körök (epiciklusok) összegére. Ez a klasszikus "Fourier-rajzolás": minél több kört engedsz meg, annál pontosabban közelíti a görbét a láncolt körök végpontja.

A ténylegesen lefutó PHP-kód (kivonat)
// X_k = sum_n (x_n + i*y_n) * e^(-2*pi*i*k*n/N)
for ($k = 0; $k < $n; $k++) {
    $sumRe = 0.0;
    $sumIm = 0.0;
    for ($i = 0; $i < $n; $i++) {
        $theta = -2.0 * M_PI * $k * $i / $n;
        $sumRe += $points[$i]['x'] * cos($theta) - $points[$i]['y'] * sin($theta);
        $sumIm += $points[$i]['x'] * sin($theta) + $points[$i]['y'] * cos($theta);
    }
    $amplitude = sqrt($sumRe ** 2 + $sumIm ** 2) / $n;
    $phase = atan2($sumIm, $sumRe);
}
Bemenet

Rajzolj egy zárt alakzatot egérrel vagy ujjal - akár több vonalból is összeállíthatod, majd nyomd meg a Feldolgozás gombot.