App-GUI-Harmonograph
view release on metacpan or search on metacpan
lib/App/GUI/Harmonograph/Compute/Drawing.pm view on Meta::CPAN
push @code, '$max_yr += $rF' if $set->{'f'}{'on'};
push @code, '$max_xr += $rW', '$max_yr += $rW' if $set->{'w'}{'on'};
push @code, '$max_xr *= 1.4', '$max_yr *= 1.4' if $set->{'r'}{'on'};
push @code, '$Cr /= (($max_xr > $max_yr) ? $max_xr : $max_yr)'; # zoom out so everything is visible
push @code, @init_var_code, 'my ($x, $y)';
push @code, 'my ($x_old, $y_old)','my $line_broke = 1' if $set->{'visual'}{'connect_dots'};
push @code, '$dc->SetPen( Wx::Pen->new( shift @wx_colors, $pen_size, $pen_style ) )',
'my $first_color = shift @colors';
push @code, 'my $color_timer = 0' if $color_swap_time;
push @code, 'for my $i (1 .. $dot_count){';
if ($color_swap_time){
push @code, ' if ($color_timer++ == $color_swap_time){', ' $color_timer = 1',
' $dc->SetPen( Wx::Pen->new( shift @wx_colors, $pen_size, $pen_style) )';
push @code, ' $progress_bar->add_percentage( ($i/ $dot_count*100), [(shift @colors)->values] )' unless defined $sketch;
push @code, ' }';
}
push @code, @compute_coor_code, @update_var_code;
push @code, ' next if rand(1) > $pen_probability' if $pen_probability < 1;
push @code, ($set->{'visual'}{'connect_dots'}
? (' if ($line_broke) {$line_broke = 0; ($x_old, $y_old) = ($x, $y) }',
' if ($x < 0 or $x > $board_size or $y < 0 or $y > $board_size) {$line_broke++; next}',
' $dc->DrawLine( $x_old, $y_old, $x, $y)',
( run in 0.998 second using v1.01-cache-2.11-cpan-49f99fa48dc )