langs a-z
This commit is contained in:
parent
db842d013d
commit
d066446780
11389 changed files with 98361 additions and 1020 deletions
|
|
@ -0,0 +1,30 @@
|
|||
sub line(Bitmap $bitmap, $x0 is copy, $x1 is copy, $y0 is copy, $y1 is copy) {
|
||||
my $steep = abs($y1 - $y0) > abs($x1 - $x0);
|
||||
if $steep {
|
||||
($x0, $y0) = ($y0, $x0);
|
||||
($x1, $y1) = ($y1, $x1);
|
||||
}
|
||||
if $x0 > $x1 {
|
||||
($x0, $x1) = ($x1, $x0);
|
||||
($y0, $y1) = ($y1, $y0);
|
||||
}
|
||||
my $Δx = $x1 - $x0;
|
||||
my $Δy = abs($y1 - $y0);
|
||||
my $error = 0;
|
||||
my $Δerror = $Δy / $Δx;
|
||||
my $y-step = $y0 < $y1 ?? 1 !! -1;
|
||||
my $y = $y0;
|
||||
for $x0 .. $x1 -> $x {
|
||||
my $pix = Pixel.new(R => 100, G => 200, B => 0);
|
||||
if $steep {
|
||||
$bitmap.set-pixel($y, $x, $pix);
|
||||
} else {
|
||||
$bitmap.set-pixel($x, $y, $pix);
|
||||
}
|
||||
$error += $Δerror;
|
||||
if $error >= 0.5 {
|
||||
$y += $y-step;
|
||||
$error -= 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue