000
27.10.2003, 14:30
Dein-Zahnarzt
|
ich ver suche zur zeit so eine art superscope (kennt von winamp's avs) mit perl zu schreiben. mein problem besteht darin dass ich keine dynamischen linien hinkriege. es müsste etwa so funktionieren: das fenster mit dem canvas wird geöffnet und ein schwarzes rechteck wird drübergelegt (soweit bin ich schon). nun wird eine linie gezeichnet und auch sofort angezeigt. dann wird sie wieder entfernt (mit nem neuen rechteck) danach wird eine andere linie gezeichnet... und so weiter. ich hab das mit ner schleife gelöst:
for(my $frm = 0;$frm < 10;$frm++){ //zehn frames werden gerendert clear(); //erstellt ein schwarzes rechteck $rot += 0.1; for(my $index = 0;$index < $n;$index++){ my $i = $index/($n-1); my $subx = (die formel ist sehr lang und außerdem unwichtig) my $suby = (die formel ist sehr lang und außerdem unwichtig) my $col = (1-$i)*(1+$bright); my $red = $col/2; my $green = sin($i*$pi)*$col; my $blue = abs(sin($i*$pi*8)*$col*(1.5-$col)); drawline($subx,$suby,$red,$green,$blue); //malt eine linie } }die subroutinen die wichtig sind:
sub clear{ $canvas->createRectangle(0, 0, $w, $h, -fill => 'black'); }
sub drawline{ my($newx,$newy,$red,$green,$blue) = @_; $newx = ($newx+1)*$w/2; $newy = ($newy+1)*$h/2; $red = dectohex(int($red*255)); $green = dectohex(int($green*255)); $blue = dectohex(int($blue*255)); my $color = "#"."$red"."$green"."$blue"; $canvas->createLine($curx, $cury, $newx, $newy, -fill => $color, -width => 2); $curx = $newx; $cury = $newy; }dummer weise funktioniert das nicht so wie es sollte. erst werden die ganzen linien berechnet und ganz zuletzt wird das fenster mit dem canvas geöffnet und die letzte linie wird angezeigt. wer kann mir helfen?
--
Die Lösung aller Eurer Probleme: ||Die Liste aller Compilier Fehler.|Der ultimative Compile Log Anaylizer|| ||How to: Fragen stellen.|| ||Sieben Wege LEAKs zu finden.|| ||Die letzten wirklich bug-freien Compiler (Juli)||
Dieser Beitrag wurde am 27.10.2003 um 14:37 von Dein-Zahnarzt bearbeitet.
|
|
Profil || Suche
|