View in color | License | Download script | History | Other scripts by: rvdzee |
15-Sep 6:04 UTC
[0.048] 11.864k
[0.048] 11.864k
the-blue-clock.rREBOL [
File: %the-blue-clock.r
Date: 22-Nov-2005
Title: "Time"
Version: 1.0.0
Author: "R. v.d.Zee"
Purpose: {This script is a demonstration of an analog clock & of a clock movement.}
Notes: {This script requires View 1.3}
History: [1.0.0 [22-Nov-2005 "First Version"] ]
Library: [
level: intermediate
platform: 'all
type: [demo tool]
domain: [sdk GUI]
tested-under: [view 1.3.1.3.1 on [WinXP] ]
support: none
license: none
see-also: %analog-clock.r
]
]
minuteHandRadius: 93
hourHandRadius: 75
center: 110x110
minuteHandPosition: 0x0
hourHandPosition: 0x0
clockWorks: [
currentTime: now/time
theMinute: currentTime/2
minuteHandTravel: theMinute * 6 ; 1 minute is 6 degrees
minuteHandAngle: 90 - minuteHandTravel ; from the required angle of the right triangle
minuteHandPosition/1: center/1 + ( (cosine minuteHandAngle) * minuteHandRadius)
minuteHandPosition/2: center/2 - ( (sine minuteHandAngle) * minuteHandRadius)
theHour: currentTime/1
if theHour > 12 [theHour: theHour - 12]
hourHandTravel: theHour * (30) + ( (theMinute / 60) * 30 )
hourHandAngle: 90 - hourHandTravel
hourHandPosition/1: center/1 + ( (cosine hourHandAngle) * hourHandRadius)
hourHandPosition/2: center/2 - ( (sine hourHandAngle) * hourHandRadius)
]
clockFace: copy (make block! 40 []) ; vectorial text improved over "copy []"
bold20: make face/font [style: size: 20]
append clockFace compose [
pen navy line-width 5
fill-pen 40.40.168
circle center 100
line center minuteHandPosition
line center hourHandPosition
circle center 3
font bold20
pen green line-width 1
text vectorial "12" 98x15
text vectorial "3" 195x96
text vectorial "6" 103x180
text vectorial "9" 17x97
]
k: layout [
size 220x220
clock: origin 0x0 box black 220x220 effect reduce ['draw clockFace] rate 0:01:00 feel [
engage: func [face act evt] [
do clockWorks
show face
]
]
]
do clockWorks
view k |