chiark / gitweb /
wip centres etc.
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 28 Feb 2019 17:31:44 +0000 (17:31 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 28 Feb 2019 17:31:44 +0000 (17:31 +0000)
generate-board
misc-data.pl [new file with mode: 0644]

index b73f0c30b3573c758b19db5f7b85b9246017e900..d9e83e2a0132f5bfee9f8278359345e3dac694b3 100755 (executable)
@@ -8,6 +8,8 @@ use Math::GSL::Matrix;
 
 BEGIN { unshift @INC, qw(.); }
 
+require 'misc-data.pl';
+
 use Parse;
 
 our $facesf;
@@ -41,6 +43,7 @@ sub read_faces () {
   #  $region{NAME}{Adj}[]{Ends}[]{VxName}
   #  $region{NAME}{Adj}[]{Ends}[]{Pos}
   #  $region{NAME}{Polygon}{Pos}
+  #  $region{NAME}{Special}
   #
   # also incidentally
   #  $region{NAME}{Adj}[]{Ends}[]{Adjoins}
@@ -112,6 +115,23 @@ sub read_faces () {
     }
   }
   $process_rr->();
+
+  $region{$_}{Special} = 1 foreach qw(NZ L);
+}
+
+#----- geometry mangling -----
+
+sub calculate_centres () {
+  # Sets
+  #  $region{NAME}{Centre}
+  foreach my $rr (values %region) {
+    next if $rr->{Special};
+    my $poly = $rr->{Polygon};
+    my $sum = Math::GSL::Vector->new(2);
+    $sum += $_->{Pos} foreach @$poly;
+    $rr->{Centre} = $sum * (1.0 / @$poly);
+  }
+  #  my $cnortn = 
 }
 
 #----- main program -----
@@ -120,6 +140,7 @@ sub read_faces () {
 parse_input_graph();
 prep_region_rmap();
 read_faces();
+calculate_centres();
 
 print Dumper(\%region);
 
diff --git a/misc-data.pl b/misc-data.pl
new file mode 100644 (file)
index 0000000..ef042a6
--- /dev/null
@@ -0,0 +1,3 @@
+our %c = (
+  OrientRegions => [ 'Roer en Overmaas', 'Noorderzijlvest' ],
+);