use SDL::Constants;
use SDL::Event;
use Math::CatmullRom;
-#use Algorithm::Line::Bresenham;
+use Algorithm::Line::Bresenham qw(line);
use Carp qw(cluck);
use Data::Dump qw(dump);
our $mouse_down = 0;
-our $white = SDL::Color->new( 0xff, 0xff, 0xff );
-our $red = SDL::Color->new( 0xff, 0x00, 0x00 );
-our $black = SDL::Color->new( 0x00, 0x00, 0x00 );
+our $mouse_color = SDL::Color->new( 0x00, 0x80, 0x00 );
+our $path_color = SDL::Color->new( 0xff, 0x00, 0x00 );
+our $black = SDL::Color->new( 0x00, 0x00, 0x00 );
my ( $last_x, $last_y ) = ( 0,0 );
my $i = 0;
while ( $i < $#curve ) {
- $app->pixel( int($curve[$i++]), int($curve[$i++]), $red );
+ my $from_x = int($curve[$i++]);
+ my $from_y = int($curve[$i++]);
+ my $to_x = int($curve[$i++]);
+ my $to_y = int($curve[$i++]);
+ line(
+ int($curve[$i++]),
+ int($curve[$i++]),
+ int($curve[$i++]),
+ int($curve[$i++]),
+ sub { $app->pixel( @_, $path_color ) }
+ );
}
$app->sync;
}
if ( $#path < $max_path_length ) {
push @path, $x, $y;
my $rect = SDL::Rect->new( -x => $event->motion_x - 1, -y => $event->motion_y -1 , -w => 3, -h => 3 );
- $app->fill( $rect, $white );
+ $app->fill( $rect, $mouse_color );
$app->update( $rect );
$last_x = $x;
$last_y = $y;