my $s = sin($rotateby);
my $c = cos($rotateby);
my $transform = Math::GSL::Matrix->new(2,2);
- $transform->set_row(0, [ $c, $s ]);
+ $transform->set_row(0, [ $c, -$s ]);
$transform->set_row(1, [ -$s, $c ]);
print STDERR "rotate was=",prvec($dir)," theta=$theta",
" rotateby=$rotateby s=$s c=$c\n";
my $v = $topend ? -$GSL_DBL_MAX : $GSL_DBL_MAX;
$lims[$topend] = Math::GSL::Vector->new([$v,$v]);
}
+ # xxx rotation is not happening
print STDERR "lims ",prvec($lims[0])," .. ",prvec($lims[1]),"\n";
for_each_pos(sub {
my ($pr) = @_;
});
print STDERR "lims ",prvec($lims[0])," .. ",prvec($lims[1]),"\n";
my $translate = -$lims[0];
+ # xxx bot left doesn't seem to be 0 either; x is 0 but y is odd ?
print STDERR "translate ",prvec($translate),"\n";
my $scale = $c{GraphScale} * MM2PT;
for_each_pos(sub {
});
}
+sub write_face_edges() {
+ o("5 setlinewidth\n");
+ foreach my $rr (values %region) {
+ next if $rr->{Special};
+ o("% $rr->{Name}\n");
+ # xxx setmiter?
+ o(" newpath\n");
+ my $xto = 'moveto';
+ foreach my $vertex (@{ $rr->{Polygon} }) {
+ my $pos = $vertex->{Pos};
+ # xxx break this out
+ o(sprintf " %20.6f %20.6f %s\n", $pos->get(0),$pos->get(1), $xto);
+ $xto = 'lineto';
+ }
+ o(" closepath stroke\n");
+ }
+}
+
#----- main program -----
($facesf, @ARGV) = @ARGV or die;
calculate_centres();
transform_coordinates();
-print Dumper(\%region);
+o("%!\n");
+# xxx boundingbox
+write_face_edges();
+
+#print Dumper(\%region);
# Local variables:
# cperl-indent-level: 2