1 /** This file is part of Shapes.
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
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.
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/>.
16 ** Copyright 2009, 2014 Henrik Tidefelt
19 ##needs winding-rule-paths.shext
22 ##lookin ..Shapes..Geometry
26 bb: [Layout..bbox Traits..@width:4mm | [Graphics..stroke pth]]
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)]])]
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)]