Apply the rotation in Penrose grid descriptions by rotating in the
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Fri, 6 May 2011 17:09:03 +0000 (17:09 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Fri, 6 May 2011 17:09:03 +0000 (17:09 +0000)
commita15e5ee340857b4763cede846a3fa52915f278cb
treee8b39e62d938bb5a7e5a20fff144a88a42dea7a1
parent40785ed96c9dbe9a5a630b69faa0bbc9a8435091
Apply the rotation in Penrose grid descriptions by rotating in the
4-vector representation, rather than mucking about with sines and
cosines after grid generation. _Should_ make no difference in the
generated grids (there's a theoretical risk of an unlucky rounding
error just about managing to push some point in or out of bounds, but
I think it's vanishingly small), but simplifies the coordinate-
flattening procedure, and in particular increases its chance of
getting vertical lines actually vertical.

(Prior to this change, the game ID
10x10t12:G2554,-31,108_a3b12h0a212a3d102b2a23a2e3b01b0a2c2a0c0 was
generating a not-quite-vertical edge at top left, in the Java port but
not on Linux; I suspect differences in sin and cos as the cause of the
discrepancy. With the rotation done like this, the points'
x-coordinates are now computed without reference to their
y-coordinates.)

git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9168 cda61777-01e9-0310-a592-d414129be87e
grid.c
penrose.c
penrose.h