Voronoi diagram: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (→{{header|Perl 6}}: missed a bar) |
m (→{{header|Sidef}}: added link to output file + code simplifications) |
||
Line 2,442: | Line 2,442: | ||
func generate_voronoi_diagram(width, height, num_cells) { |
func generate_voronoi_diagram(width, height, num_cells) { |
||
var img = % |
var img = %O<Imager>.new(xsize => width, ysize => height) |
||
var (nx,ny,nr,ng,nb) = 5.of { [] }... |
var (nx,ny,nr,ng,nb) = 5.of { [] }... |
||
for i in ^num_cells { |
for i in (^num_cells) { |
||
nx << rand(^width) |
nx << rand(^width) |
||
ny << rand(^height) |
ny << rand(^height) |
||
Line 2,453: | Line 2,453: | ||
} |
} |
||
for y |
for y=(^height), x=(^width) { |
||
⚫ | |||
for x in ^width { |
|||
img.setpixel(x => x, y => y, color => [nr[j], ng[j], nb[j]]) |
|||
var j = -1 |
|||
for i in ^num_cells { |
|||
⚫ | |||
if (d < dmin) { (dmin, j) = (d, i) } |
|||
} |
|||
img.setpixel(x => x, y => y, color => [nr[j], ng[j], nb[j]]) |
|||
} |
|||
} |
} |
||
return img |
return img |
||
Line 2,469: | Line 2,462: | ||
var img = generate_voronoi_diagram(500, 500, 25) |
var img = generate_voronoi_diagram(500, 500, 25) |
||
img.write(file => 'VoronoiDiagram.png')</lang> |
img.write(file => 'VoronoiDiagram.png')</lang> |
||
Output image: [https://github.com/trizen/rc/blob/master/img/voronoi-diagram-sidef.png Voronoi diagram] |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |