~drgeo-developers/drgeo/trunk

« back to all changes in this revision

Viewing changes to resources/SmalltalkSketches/Recursive triangles.st

  • Committer: Hilaire Fernandes
  • Date: 2012-01-27 21:15:40 UTC
  • Revision ID: hilaire.fernandes@gmail.com-20120127211540-912spf97bhpx6mve
Initial additions

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
| sketch build |
2
 
 
3
 
sketch _ DrGeoSketch new .
4
 
sketch centerTo: 1@0; scale: 200.
5
 
build _ [  ].
6
 
 
7
 
build _ [ :triangle :depth| | vertrices middles nextTriangles|
8
 
        depth > 0 ifTrue: [ 
9
 
                (Delay forMilliseconds: 10) wait.
10
 
                vertrices _ triangle mathItem points.
11
 
                middles _ vertrices withIndexCollect: [:point : index | point + (vertrices atWrap: index + 1) / 2 ].
12
 
                sketch domain deleteMathItem: triangle mathItem.
13
 
                nextTriangles _ OrderedCollection new.
14
 
                nextTriangles 
15
 
                        add: (sketch polygon: {vertrices  first.  middles first. middles third });
16
 
                        add: (sketch polygon: {middles first. vertrices second. middles second});
17
 
                        add: (sketch polygon: {middles third. middles second. vertrices third}).
18
 
                nextTriangles do: [ :aTriangle | build value: aTriangle value: depth - 1]
19
 
        ]
20
 
 ].
21
 
 
22
 
build 
23
 
        value: (sketch polygon: { 0 @3 sqrt. 1@0 . -1@0})
24
 
        value: 6.
25
 
sketch.