Algorithm-BreakOverlappingRectangles

 view release on metacpan or  search on metacpan

samples/s4.pl  view on Meta::CPAN

#!/usr/bin/perl

use warnings;
use strict;

$| = 1;

use Algorithm::BreakOverlappingRectangles;

my $a = Algorithm::BreakOverlappingRectangles->new;

while(<>) {
    next if /^\s*$/;
    chomp;
    $a->add_rectangle(split/\s+/);
}

$a->dump;

use GD;

my $im = GD::Image->new(1000, 1000);

my $white =  $im->colorAllocate(255,255,255);
my @colors = map $im->colorAllocate(256 * rand, 256 * rand, 256 * rand), 0..127;

$im->rectangle(0,0,999,999, $white);

for ($a->get_rectangles) {
    my ($x0, $y0, $x1, $y1, @ids) = @{$_};
    my $color = $colors[128 * rand];
    $im->rectangle($x0, $y0, $x1 - 1, $y1 - 1, $color);
    $im->string(gdSmallFont, $x0, ($y0+$y1)/2, "[@ids]", $color);
}

open my $file, '>', 'image.png';

print $file $im->png;

close $file;





( run in 3.171 seconds using v1.01-cache-2.11-cpan-2398b32b56e )