88video = Video (400 , 450 )
99
1010U = 50
11+ SHIFT = Point (0 , - 1.7 U)
1112
1213function tangram (obj)
1314 if obj == :triangle1
3738javis (video, [
3839 BackgroundAction (1 : 400 , ground),
3940 Action (1 : 400 , (args... )-> poly (tangram (:triangle1 ), :fill , close= true ); subactions= [
40- SubAction (1 : 1 , Translation (O, Point ( 0 , - 2 U) )),
41+ SubAction (1 : 1 , Translation (O, SHIFT )),
4142 SubAction (50 : 60 , Translation (O, Point (0 , 2 U))),
4243 SubAction (60 : 70 , Rotation (0. , - π/ 2 )),
4344 SubAction (70 : 80 , Translation (O, Point (- 2 U, 0 ))),
4445 SubAction (80 : 90 , Translation (O, Point (U, - U))),
4546 ]),
4647 Action (1 : 400 , (args... )-> poly (tangram (:triangle2 ), :fill , close= true ); subactions= [
47- SubAction (1 : 1 , Translation (O, Point ( 0 , - 2 U) )),
48+ SubAction (1 : 1 , Translation (O, SHIFT )),
4849 ]),
4950 Action (1 : 400 , (args... )-> poly (tangram (:triangle3 ), :fill , close= true ); subactions= [
50- SubAction (1 : 1 , Translation (O, Point ( 0 , - 2 U) )),
51+ SubAction (1 : 1 , Translation (O, SHIFT )),
5152 SubAction (1 : 1 , Translation (O, Point (0 , - 2 U))),
5253 SubAction (100 : 110 , Translation (O, Point (- 3 U, 0 ))),
5354 SubAction (110 : 120 , Rotation (0. , - π/ 2 )),
5455 SubAction (120 : 130 , Translation (O, Point (- 5.5 U, 0 ))),
5556 SubAction (130 : 140 , Translation (O, Point (0 , U))),
5657 ]),
5758 Action (1 : 400 , (args... )-> poly (tangram (:triangle5 ), :fill , close= true ); subactions= [
58- SubAction (1 : 1 , Translation (O, Point ( 0 , - 2 U) )),
59+ SubAction (1 : 1 , Translation (O, SHIFT )),
5960 SubAction (1 : 1 , Translation (O, Point (U, 0 ))),
6061 SubAction (150 : 160 , Translation (O, Point (0 , 4.5 * U))),
6162 SubAction (160 : 170 , Rotation (0. , - 3 π/ 4 )),
6263 SubAction (170 : 180 , Translation (O, Point (sqrt ((2 - √ 2 / 2 )^ 2 / 2 ) * U, - sqrt ((2 - √ 2 / 2 )^ 2 / 2 ) * U))),
6364 ]),
6465 Action (1 : 400 , (args... )-> poly (tangram (:parallelogram ), :fill , close= true ); subactions= [
65- SubAction (1 : 1 , Translation (O, Point ( 0 , - 2 U) )),
66+ SubAction (1 : 1 , Translation (O, SHIFT )),
6667 SubAction (1 : 1 , Translation (O, Point (- U, 0 ))),
6768 SubAction (200 : 210 , Translation (O, Point (U, - U))),
6869 SubAction (210 : 220 , Translation (O, Point (U, 0 ))),
@@ -71,15 +72,15 @@ javis(video, [
7172 SubAction (240 : 250 , Translation (O, Point (0 , U))),
7273 ]),
7374 Action (1 : 400 , (args... )-> poly (tangram (:triangle4 ), :fill , close= true );subactions= [
74- SubAction (1 : 1 , Translation (O, Point ( 0 , - 2 U) )),
75+ SubAction (1 : 1 , Translation (O, SHIFT )),
7576 SubAction (250 : 260 , Translation (O, Point (0 , - U))),
7677 SubAction (260 : 270 , Translation (O, Point (2 U, 0 ))),
7778 SubAction (270 : 280 , Rotation (0. , - π/ 2 )),
7879 SubAction (280 : 290 , Translation (O, Point (- 4 U, 0 ))),
7980 SubAction (290 : 300 , Translation (O, Point (0.5 * U, - 0.5 * U))),
8081 ]),
8182 Action (1 : 400 , (args... )-> poly (tangram (:box ), :fill , close= true );subactions= [
82- SubAction (1 : 1 , Translation (O, Point ( 0 , - 2 U) )),
83+ SubAction (1 : 1 , Translation (O, SHIFT )),
8384 SubAction (300 : 310 , Translation (O, Point (- U, 0 ))),
8485 SubAction (310 : 320 , Rotation (0. , - π/ 6 )),
8586 ]),
0 commit comments