#! perl -slw use strict; sub direction{ local($_, @_= @_); push @_, $_[0]; $_+= $a->[0]*$b->[1]-$a->[1]*$b->[0] while ($a,$b)=(shift,$_[0]), @_; $_ < 0; } =pod | . | /.\ | // \\ |// - |\\ _ | \\ // | \v/ +---v----- =cut my @inflectiveC = ([0,3],[3,6],[5,4],[4,4],[3,5],[1,3],[3,1],[4,2],[5,2],[3,0]); print direction(@inflectiveC) ? 'Clockwise' : 'Not clockwise'; my @inflectiveA = reverse @inflectiveC; print direction(@inflectiveA) ? 'Clockwise' : 'Not clockwise'; my @mirroredXC = reverse map{ [ 0 - $_->[0], $_->[1]] } @inflectiveC; print direction(@mirroredXC) ? 'Clockwise' : 'Not clockwise'; my @mirroredXA = map{ [ 0 - $_->[0], $_->[1]] } @inflectiveC; print direction(@mirroredXA) ? 'Clockwise' : 'Not clockwise'; my @mirroredYC = reverse map{ [$_->[0], 0 - $_->[1]] } @inflectiveC; print direction(@mirroredXC) ? 'Clockwise' : 'Not clockwise'; my @mirroredYA = map{ [$_->[0], 0 - $_->[1]] } @inflectiveC; print direction(@mirroredXA) ? 'Clockwise' : 'Not clockwise';