From: Konrad Foerstner <[EMAIL PROTECTED]> > I have a strange error in my script. It should > paint a column of lines next to each other in > colors which are determinated by a given sequence > of letters. It works...but only to the position > of 251. After this point all lines have the color > of the line at position 251...even when I use > a different letter sequence. > > Is this a sign? The 251? ;) Nope, any hints? > > Here is the basic sheme. I hope I did't kill > an impotant detail. > > > my $seq = $_[0]; > my @seq_s = split ('',$seq); > > my $length = length $seq; > > $pic_length = $length +100; > > my $img = new GD::Image($pic_length,30); > > for (my $pos = '0'; $pos < ($length-1); ++$pos) > { > my $aa = $seq_s[$pos]; > > my $color; > > if ($aa eq 'A') > {$color = $img->colorAllocate(255,0,0);} > elsif ($aa eq 'B') > {$color = $img->colorAllocate(255,0,0);} > elsif ($aa eq 'C') > {$color = $img->colorAllocate(0,0,255);} > elsif ($aa eq 'D') > {$color = $img->colorAllocate(0,0,255);} > > $img->line($pos,1,$pos,21,$color); > }
Why do you keep allocating colors you aready have? I would suggest something like this : %colors = ( 'A' => $img->colorAllocate(255,0,0), 'B' => $img->colorAllocate(255,0,0), 'C' => $img->colorAllocate(0,0,255), 'D' => $img->colorAllocate(0,0,255), ); for (my $pos = '0'; $pos < ($length-1); ++$pos) { my $aa = $seq_s[$pos]; my $color = $colors{$aa}; $img->line($pos,1,$pos,21,$color); } HTH, Jenda =========== [EMAIL PROTECTED] == http://Jenda.Krynicky.cz ========== There is a reason for living. There must be. I've seen it somewhere. It's just that in the mess on my table ... and in my brain I can't find it. --- me -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]