Fix Makefile whitespace errors
[shapes.git] / examples / doc / winding-numbers.shape
blobdde2199a0e27d2e469fdc2bfa29bf105e103a4ed
1 /** This file is part of Shapes.
2  **
3  ** Shapes is free software: you can redistribute it and/or modify
4  ** it under the terms of the GNU General Public License as published by
5  ** the Free Software Foundation, either version 3 of the License, or
6  ** any later version.
7  **
8  ** Shapes is distributed in the hope that it will be useful,
9  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
10  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  ** GNU General Public License for more details.
12  **
13  ** You should have received a copy of the GNU General Public License
14  ** along with Shapes.  If not, see <http://www.gnu.org/licenses/>.
15  **
16  ** Copyright 2009, 2014 Henrik Tidefelt
17  **/
19 ##needs winding-rule-paths.shext
21 ##lookin ..Shapes
22 ##lookin ..Shapes..Geometry
24 cmd: \ pth →
26   bb: [Layout..bbox Traits..@width:4mm | [Graphics..stroke pth]]
27   step: 3mm
28   x1: [Layout..xmin bb]
29   x2: [Layout..xmax bb]
30   y1: [Layout..ymin bb]
31   y2: [Layout..ymax bb]
32   Text..@size:0.7*step
33   |
34   [[Data..range x1 x2 step].foldl
35    \ p x → [[Data..range y1 y2 step].foldl
36              \ p y → p & [[shift (x,y)] Layout..center [] (Text..newText << [String..sprintf `%d´ [Geometry..winding pth (x,y)]])]
37              p]
38    Graphics..null]
41 Traits..@nonstroking: [Traits..gray 0.4]
44   IO..•page << ( [cmd starPath] & starPathStroke )
45         << ( [cmd sameCircle] & sameCircleStroke ) >> [shift (3cm,0cm)]
46         << ( [cmd alternatingCircle] & alternatingCircleStroke ) >> [shift (6cm,0cm)]