Algorithm-Evolutionary
view release on metacpan or search on metacpan
lib/Algorithm/Evolutionary/Op/Animated_GIF_Output.pm view on Meta::CPAN
sub new {
my $class = shift;
my $hash = shift || croak "No default values for length ";
my $self = Algorithm::Evolutionary::Op::Base::new( __PACKAGE__, 1, $hash );
$hash->{'pixels_per_bit'} = $hash->{'pixels_per_bit'} || 1;
$self->{'_image'} = GD::Image->new($hash->{'length'}*$hash->{'pixels_per_bit'},
$hash->{'number_of_strings'}*$hash->{'pixels_per_bit'});
$self->{'_length'} = $hash->{'length'};
$self->{'_pixels_per_bit'} = $hash->{'pixels_per_bit'};
$self->{'_white'} = $self->{'_image'}->colorAllocate(0,0,0); #background color
$self->{'_black'} = $self->{'_image'}->colorAllocate(255,255,255);
$self->{'_gifdata'} = $self->{'_image'}->gifanimbegin;
$self->{'_gifdata'} .= $self->{'_image'}->gifanimadd; # first frame
return $self;
}
sub apply {
my $self = shift;
my $population_hashref=shift;
scripts/rectangle-coverage.pl view on Meta::CPAN
# Create and configure the widgets
my $f = $mw->Frame(-relief => 'groove',
-bd => 2)->pack(-side => 'top',
-fill => 'x');
for my $v ( qw( num_rects arena_side bits pop_size number_of_generations selection_rate ) ){
create_and_pack( $f, $v );
}
my $canvas = $mw->Canvas( -cursor=>"crosshair", -background=>"white",
-width=>$width, -height=>$height )->pack;
$mw->Button( -text => 'Start',
-command => \&start,
)->pack( -side => 'left',
-expand => 1);
$mw->Button( -text => 'End',
-command => \&finished,
)->pack( -side => 'left',
-expand => 1 );
$mw->Button( -text => 'Exit',
( run in 3.045 seconds using v1.01-cache-2.11-cpan-f56aa216473 )