Skip to content

Instantly share code, notes, and snippets.

@toomasv
Created April 25, 2019 08:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save toomasv/a122fa00305d3f2290a3b952d0c84c2d to your computer and use it in GitHub Desktop.
Save toomasv/a122fa00305d3f2290a3b952d0c84c2d to your computer and use it in GitHub Desktop.
Playing with versions of pie sectors
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