phpbar.de logo

Mailinglisten-Archive

Re[2]: [php] 1/2 OT, oder...

Re[2]: [php] 1/2 OT, oder...

Norbert Pfeiffer php_(at)_phpcenter.de
Tue, 11 Dec 2001 23:58:36 +0100


Hi Helferteam,

irgendwie hab' ich/wir das voellig umstaendlich angepackt.
http://itbw.de/_tests/diverse/phplist/_ellipse.php4

$A = 66;  /* halbe Breite */
$B = 33;  /* halbe Hoehe */
$C = 200;  /* Mitte-X */
$D = 150;  /* Mitte-Y */

$c2P = 2* M_PI;
for($i=0; $i<$c2P; $i+=0.01)
   {$x = round(cos($i) * $A);
    $y = round(sin($i) * $B);
    $erg = ImageSetPixel($neu, ($C + $x), ($D - $y), $red);
    }
fertig ist die Ellipse.
Dann die Gerade zeichnen, ist ja auch easy
$erg = ImageLine($neu, $C, $D, ($C + $mX), ($D - $mY), $blk);

Den Winkel der Geraden berechnen:
$phi = atan($GeK / $AnK) + ($qur * M_PI_2);

Das ist etwas triky, weil atan(); nicht eindeutig ist.
Je nach dem, in welchem Quadranten man gerade ist,
muss man wahlweise  $mX, $mY  den  $GeK, $AnK  zuweisen,
und dann die fehlenden 1/2 PI addieren.

Zur Kontrolle schnell einen roten Punkt gemalt:

$x = round(cos($phi) * $laenge);
$y = round(sin($phi) * $laenge);
$erg = ImageArc($neu, ($C + $x), ($D - $y), 5, 5, 0, 360, $red);

passt schon prima, aber dann, die Ernuechterung:

$x = round(cos($phi) * $A);
$y = round(sin($phi) * $B);
$erg = ImageArc($neu, ($C + $x), ($D - $y), 5, 5, 0, 360, $blu);

Der blaue Punkt liegt immer irgendwie daneben... :-(((
Woran koennte das nun wieder liegen <gruebel>


m. b. G. Norbert
_____________________
normal:  02292-681769
Notruf:  0177-2373368
---------------------
e.o.m.


php::bar PHP Wiki   -   Listenarchive