Advertisement
faubiguy

cloud.pl

Jul 23rd, 2015
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.91 KB | None | 0 0
  1. #!/usr/bin/perl
  2. # $a = [minx, miny, maxx, maxy]
  3. # $b =
  4. # @e = circles
  5. # @f = image: 0=outside, -1=drawn, -2=inside
  6. # $x,$y = center
  7. # $k,$l = current
  8. @e=map{[map{int($_*32)}split',']}(split' ',<>);
  9. for$g(@e){for(0..3){($a[$_]>($q=$$g[$_&1]+(($_>>1)*2-1)*$$g[2]))^($_>>1)&&($a[$_]=$q)}}
  10. #for(0..3){$a[$_]=int($a[$_]*32)}
  11. #print join(',',@a)."\n";
  12. for(2,3){$a[$_]-=$a[$_-2]-1}
  13. #print join(',',@a)."\n";
  14. for(@e){
  15.     #print join(',',@$_)."\n";
  16.     #($x,$y,$r)=map{int($_*32)}@$_;
  17.     ($x,$y,$r)=@$_;
  18.     $x-=$a[0];$y-=$a[1];
  19.     #print"x=$x, y=$y, r=$r\n";
  20.     for$k($x-$r..$x+$r){
  21.         for$l($y-$r..$y+$r){
  22.             $i=(int(sqrt(($x-$k)**2+($y-$l)**2)+0.5)<=>$r)-1;
  23.             $f[$l][$k]=($j=$f[$l][$k])<-1||$i<-1?-2:$i||$j;
  24.         }
  25.     }
  26. }
  27. #print"@f\n";
  28. print"P1
  29. $a[2] $a[3]
  30. ".join("
  31. ",map{join' ',map{$_+1?0:1}@$_,('0')x($a[2]-@$_)}@f)."
  32. "
  33.  
  34. # print"P1
  35. # $a[2] $a[3]
  36. # ";
  37. # for(@f){print join(' ',map{$_+1?0:1}@$_,('0')x($a[2]-@$_))."\n"}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement