John: imagecreate bin die pixel leid

Morgen,
bastel gerad aus langerweile n bissel an nem php script. Es soll Funktionen darstellen und es stinkt mich tierisch an die pixel immer in centimeter umrechnen zu müssen! Gibt es eine möglichkeit
z.bsp  sowas:
imagecreate(10cm,10cm);*GG* ja so sicher nicht

Zumal sieht eine fkt x² beschissen aus wenn man ne for schleife im intervall von 0 bis 300 pixel durchläuft.:-)

MFG John

  1. Moin!

    Morgen,
    bastel gerad aus langerweile n bissel an nem php script. Es soll Funktionen darstellen und es stinkt mich tierisch an die pixel immer in centimeter umrechnen zu müssen! Gibt es eine möglichkeit
    z.bsp  sowas:
    imagecreate(10cm,10cm);*GG* ja so sicher nicht

    Zumal sieht eine fkt x² beschissen aus wenn man ne for schleife im intervall von 0 bis 300 pixel durchläuft.:-)

    Dir mangelt es offensichtlich an Kenntnissen über Transformation.

    Du mußt zwei Wertebereiche voneinander trennen: Das Pixelkoordinatensystem und das Funktionskoordinatensystem.

    Um einen Funktionsgraphen zu zeichnen, gehst du alle existierenden Pixel durch, rechnest deren Pixelkoordinaten um in Funktionskoordinaten, rechnest damit dann den Funktionswert aus, rechnest das wieder zurück in Pixelkoordinaten und zeichnest den Pixel oder die Linie.

    Diese Transformation besteht je Achse (X und Y) eigentlich aus einer sehr simplen Umrechnung:
    [latex]
    x_{fkt} = x_{pixel} * X_{skalier} + X_{konst}
    [/latex]
    [latex]
    y_{fkt} = y_{pixel} * Y_{skalier} + Y_{konst}
    [/latex]

    Die Konstanten "skalier" und "konst" sind zu errechnen, indem die Breite (bzw. Höhe) der Grafik in Beziehung zum Funktionswertebereich gesetzt werden (wenn 0 bis 300 Pixel den Bereich -1,5 bis 1,5 darstellen sollen, also 3 Einheiten, dann ist jede Einheit 100 Pixel breit, oder jeder Pixel 0,01 Einheiten), und zusätzlich muß noch der Nullpunkt verschoben werden (in obigem Beispiel ist bei 0 Pixeln -1,5, bzw bei Funktionswert 0 150 Pixel).

    Es würde also drauf hinauslaufen, mit folgenden Werten zu rechnen (jetzt nur für X dargestellt, Y ist davon unabhängig und kann auch einen anderen Skalierfaktor kriegen):
    [latex]
    x_{fkt} = x_{pixel} * 0,01 - 1,5
    [/latex]

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!