From: Ian Jackson Date: Thu, 28 Feb 2019 17:31:44 +0000 (+0000) Subject: wip centres etc. X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=700e63f34784b4a3e80113cc269d28836b4c053f;p=pandemic-rising-tide.git wip centres etc. --- diff --git a/generate-board b/generate-board index b73f0c3..d9e83e2 100755 --- a/generate-board +++ b/generate-board @@ -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 index 0000000..ef042a6 --- /dev/null +++ b/misc-data.pl @@ -0,0 +1,3 @@ +our %c = ( + OrientRegions => [ 'Roer en Overmaas', 'Noorderzijlvest' ], +);