Draw a sphere: Difference between revisions
Content deleted Content added
Thundergnat (talk | contribs) →Pure Perl 6: modernize a bit, add concurrency |
Thundergnat (talk | contribs) m →Pure Perl 6: fix whitespace |
||
Line 2,873: | Line 2,873: | ||
my @row[$width]; |
my @row[$width]; |
||
@range.map: -> $y { |
@range.map: -> $y { |
||
if (my $x2 = $x * $x) + (my $y2 = $y * $y) < $r2 { |
|||
my @vector = normalize([$x, $y, ($r2 - $x2 - $y2).sqrt]); |
|||
my $intensity = dot(@light, @vector) ** $k + $ambient; |
|||
my $pixel = (0 max ($intensity * $depth).Int) min $depth; |
|||
@row[$y+$rad] = $pixel; |
|||
} |
|||
else { |
|||
@row[$y+$rad] = 0; |
|||
} |
|||
} |
|||
@pixels[$x+$rad] = @row; |
@pixels[$x+$rad] = @row; |
||
} |
} |