Created
April 25, 2019 08:39
-
-
Save toomasv/a122fa00305d3f2290a3b952d0c84c2d to your computer and use it in GitHub Desktop.
Playing with versions of pie sectors
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Red [Needs: 'View] | |
selection: 6 | |
switch selection [ | |
1 [ | |
actor: [face/draw/9: either event/away? [100x100][120x120]] | |
view/no-wait/tight compose/only [ | |
style sector: box 400x400 draw [ | |
fill-pen 61.160.255 pen white line-width 2 | |
arc 200x200 100x100 -90 110 closed | |
] | |
sector on-over (actor) | |
at 0x0 sector on-create [face/draw/2: 99.212.212 face/draw/10: 20 face/draw/11: 70] on-over (actor) | |
at 0x0 sector on-create [face/draw/2: 80.202.115 face/draw/10: 90 face/draw/11: 40] on-over (actor) | |
at 0x0 sector on-create [face/draw/2: 250.212.57 face/draw/10: 130 face/draw/11: 40] on-over (actor) | |
at 0x0 sector on-create [face/draw/2: 242.97.123 face/draw/10: 170 face/draw/11: 50] on-over (actor) | |
at 0x0 sector on-create [face/draw/2: 150.90.228 face/draw/10: 220 face/draw/11: 50] on-over (actor) | |
at 0x0 box 400x400 draw [fill-pen white pen white circle 200x200 40] | |
] | |
] | |
2 [ | |
start: -90 | |
lay: foreach [color angle][61.160.255 110 99.212.212 70 80.202.115 40 250.212.57 40 242.97.123 50 150.90.228 50][ | |
append [] compose/deep [at 0x0 box 400x400 draw [ | |
fill-pen (color) pen white line-width 2 arc 200x200 100x100 (also start start: start + angle) (angle) closed | |
] on-over [face/draw/9: either event/away? [100x100][120x120]]] | |
] | |
view/tight append lay [box 400x400 draw [fill-pen white pen white circle 200x200 40]] | |
] | |
3 [ | |
center?: no active: none | |
actor: [case [ | |
not any [event/away? center? active] [ | |
move find face/parent/pane face head face/parent/pane | |
active: face | |
face/draw/9: 120x120 'done show [face bigcent] | |
] | |
all [event/away? not center? active = face] [ | |
swap face/parent/pane next face/parent/pane | |
active: none | |
face/draw/9: 100x100 'done show [face bigcent] | |
] | |
not any [event/away? active = face] [ | |
swap face/parent/pane next face/parent/pane | |
move find face/parent/pane face face/parent/pane | |
active/draw/9: 100x100 | |
face/draw/9: 120x120 | |
active: face 'done show [face active bigcent] | |
] | |
]] | |
win: view/no-wait/tight compose/only [ | |
style sector: box 400x400 draw [ | |
fill-pen 61.160.255 pen white line-width 1 | |
arc 200x200 100x100 -90 110 closed | |
] | |
bigcent: box 400x400 draw [fill-pen white pen white line-width 2 circle 200x200 60] on-over [center?: either event/away? [no][yes]] | |
at 0x0 sect: sector on-over (actor) | |
at 0x0 sector on-create [face/draw/2: 99.212.212 face/draw/10: 20 face/draw/11: 70] on-over (actor) | |
at 0x0 sector on-create [face/draw/2: 80.202.115 face/draw/10: 90 face/draw/11: 40] on-over (actor) | |
at 0x0 sector on-create [face/draw/2: 250.212.57 face/draw/10: 130 face/draw/11: 40] on-over (actor) | |
at 0x0 sector on-create [face/draw/2: 242.97.123 face/draw/10: 170 face/draw/11: 50] on-over (actor) | |
at 0x0 sector on-create [face/draw/2: 150.90.228 face/draw/10: 220 face/draw/11: 50] on-over (actor) | |
at 0x0 box 400x400 draw [fill-pen white pen white circle 200x200 40] on-over [ | |
unless event/away? [ | |
swap face/parent/pane next face/parent/pane | |
active/draw/9: 100x100 | |
active: none | |
] | |
] | |
at 0x0 box 400x400 | |
] | |
] | |
4 [ | |
center?: no active: none | |
sum: func [block /local out][out: 0 forall block [out: out + either percent? block/1 [block/1 * 100][block/1]]] | |
;colors: [brick khaki leaf papaya aqua crimson orange pink teal gold navy sienna mint rebolor] | |
colors: load %rainbow.png | |
start: -90 i: 0 | |
;data: [110 70 40 40 50 50] | |
data: [20 70 40 40 50 50 90] | |
datasum: sum data | |
colorpicks: copy [1] | |
forall data [append colorpicks 888 * data/1 / datasum + colorpicks/(index? data)] | |
startpicks: copy [-90] | |
probe forall data [append startpicks round/to 360.0 * data/1 / datasum + startpicks/(index? data) 1] | |
lay: foreach angle data [ | |
append [] compose/deep [at 0x0 box 400x400 draw [ | |
fill-pen (pick colors take colorpicks) pen white line-width 2 arc 200x200 100x100 (take startpicks) (angle) closed | |
] on-over [case [ | |
not any [event/away? center? active] [ | |
move find face/parent/pane face head face/parent/pane | |
active: face | |
face/draw/9: 120x120 'done show [face bigcent] | |
] | |
all [event/away? not center? active = face] [ | |
swap face/parent/pane next face/parent/pane | |
active: none | |
face/draw/9: 100x100 'done show [face bigcent] | |
] | |
not any [event/away? active = face] [ | |
swap face/parent/pane next face/parent/pane | |
move find face/parent/pane face face/parent/pane | |
active/draw/9: 100x100 | |
face/draw/9: 120x120 | |
active: face 'done show [face active bigcent] | |
] | |
]]] | |
] | |
insert lay [bigcent: box 400x400 draw [fill-pen white pen white line-width 2 circle 200x200 60] on-over [center?: either event/away? [no][yes]]] | |
view/tight append lay [ | |
at 0x0 box 400x400 draw [fill-pen white pen white circle 200x200 40] on-over [ | |
unless event/away? [ | |
swap face/parent/pane next face/parent/pane | |
active/draw/9: 100x100 | |
active: none | |
'done | |
] | |
] | |
at 0x0 box 400x400 | |
] | |
] | |
5 [ | |
view/tight [ | |
sectors: box 400x400 draw [ | |
pen white line-width 2 | |
fill-pen 61.160.255 arc 200x200 100x100 -90 110 closed | |
fill-pen 99.212.212 arc 200x200 100x100 20 70 closed | |
fill-pen 80.202.115 arc 200x200 100x100 90 40 closed | |
fill-pen 250.212.57 arc 200x200 100x100 130 40 closed | |
fill-pen 242.97.123 arc 200x200 100x100 170 50 closed | |
fill-pen 150.90.228 arc 200x200 100x100 220 50 closed | |
] | |
at 0x0 box 400x400 draw [ | |
pen 255.255.255.254 | |
fill-pen 255.255.255.254 | |
arc 200x200 100x100 -90 110 closed | |
] on-over [sectors/draw/9: either event/away? [100x100][120x120]] | |
at 0x0 box 400x400 draw [ | |
pen 255.255.255.254 | |
fill-pen 255.255.255.254 | |
arc 200x200 100x100 20 70 closed | |
] on-over [sectors/draw/17: either event/away? [100x100][120x120]] | |
at 0x0 box 400x400 draw [ | |
pen 255.255.255.254 | |
fill-pen 255.255.255.254 | |
arc 200x200 100x100 90 40 closed | |
] on-over [sectors/draw/25: either event/away? [100x100][120x120]] | |
at 0x0 box 400x400 draw [ | |
pen 255.255.255.254 | |
fill-pen 255.255.255.254 | |
arc 200x200 100x100 130 40 closed | |
] on-over [sectors/draw/33: either event/away? [100x100][120x120]] | |
at 0x0 box 400x400 draw [ | |
pen 255.255.255.254 | |
fill-pen 255.255.255.254 | |
arc 200x200 100x100 170 50 closed | |
] on-over [sectors/draw/41: either event/away? [100x100][120x120]] | |
at 0x0 box 400x400 draw [ | |
pen 255.255.255.254 | |
fill-pen 255.255.255.254 | |
arc 200x200 100x100 220 50 closed | |
] on-over [sectors/draw/49: either event/away? [100x100][120x120]] | |
at 0x0 box 400x400 draw [fill-pen white pen white circle 200x200 40] | |
] | |
] | |
6 [ | |
start: -90 lay: [sectors: box 400x400 draw] sects: [pen white line-width 2] i: 9 | |
foreach [color angle][61.160.255 110 99.212.212 70 80.202.115 40 250.212.57 40 242.97.123 50 150.90.228 50][ | |
append sects compose [fill-pen (color) arc 200x200 100x100 (start) (angle) closed] | |
append lay compose/deep [at 0x0 box 400x400 draw [ | |
pen 255.255.255.254 fill-pen 255.255.255.254 | |
arc 200x200 100x100 (start) (angle) closed | |
] on-over [(to-set-path reduce ['sectors 'draw i]) either event/away? [100x100][120x120]]] | |
start: start + angle i: i + 8 | |
] probe sects | |
view/tight append insert/only at lay 5 sects [at 0x0 box 400x400 draw [fill-pen white pen white circle 200x200 40]] | |
] | |
] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment