_TITLE "Halloween Time" 'B+ 2019-10-22 ' 2019-10-23 attempt to change transparency gradually to loose blinking
dt = 1
'angles
IF hour%
> 12 THEN showHr#
= t#
/ 3600 - 12 ELSE showHr#
= t#
/ 3600 min# = t# / 60 - hour% * 60
sec#
= t#
- hour%
* 3600 - INT(min#
) * 60
'face
c~&
= _RGB32(200 - 50 * r
/ 100, 150 - 100 * r
/ 100, 0) c~&
= _RGB32(200 - 50 * r
/ 100, 150 - 100 * r
/ 100, 40 - r
/ 340) fcirc m, m, r, c~&
'some triangles
t = t + dt
IF t
> 180 THEN dt
= -dt: t
= 180 ftri 290, 335, 305, 365, 335, 350, ry~&
ftri 410, 335, 395, 365, 365, 350, ry~&
ftri 330, 380, 350, 360, 370, 380, ry~&
ftri 290, 420, 350, 400, 350, 410, ry~&
ftri 410, 420, 350, 400, 350, 410, ry~&
fcirc m, m, 150, ry~& 'more orange glow
'arms and legs
x1
= 75 * COS(showHr#
* _PI(2 / 12) - _PI / 2) y1
= 75 * SIN(showHr#
* _PI(2 / 12) - _PI / 2) drawSpinner m
+ x1
, m
+ y1
, .5, _ATAN2(y1
, x1
), &HFF442200 drawSpinner m
+ x2
, m
+ y2
, .3, _ATAN2(y2
, x2
), &HFF442211
'seconds fly by...
bx
= 350 + 290 * COS(sec#
* _PI(2 / 60) - _PI / 2) by
= 350 + 290 * SIN(sec#
* _PI(2 / 60) - _PI / 2) drawb
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0 DATA 1,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0 DATA 0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0 DATA 0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0 DATA 0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0 DATA 0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0 DATA 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
sz = 3
IF sprt2
(x
, y
) THEN LINE (x
* sz
+ bx
- 7.5 * sz
, .5 * y
* sz
+ by
- 7.5 * sz
)-STEP(sz
, sz
), _RGB32(0, 0, 0), BF
IF sprt
(x
, y
) THEN LINE (x
* sz
+ bx
- 7.5 * sz
, y
* sz
+ by
- 7.5 * sz
)-STEP(sz
, sz
), _RGB32(0, 0, 0), BF
DIM x1
, x2
, x3
, x4
, y1
, y2
, y3
, y4
, r
, a
, a1
, a2
, lg
, d
, rd
, red
, blue
, green
switch = switch + 2
switch
= switch
MOD 16 + 1 r = 10 * scale
x1
= x
+ r
* COS(heading
): y1
= y
+ r
* SIN(heading
) r = 2 * r 'lg lengths
a
= heading
+ .9 * lg
* _PI(1 / 5) + (lg
= switch
) * _PI(1 / 10) a
= heading
- .9 * (lg
- 4) * _PI(1 / 5) - (lg
= switch
) * _PI(1 / 10) x2
= x1
+ r
* COS(a
): y2
= y1
+ r
* SIN(a
) drawLink x1
, y1
, 3 * scale
, x2
, y2
, 2 * scale
, _RGB32(red
+ 20, green
+ 10, blue
+ 5) x3
= x2
+ r
* 1.5 * COS(a1
): y3
= y2
+ r
* 1.5 * SIN(a1
) drawLink x2
, y2
, 2 * scale
, x3
, y3
, scale
, _RGB32(red
+ 35, green
+ 17, blue
+ 8) a2
= a1
+ d
* _PI(1 / 8) * rd
/ 8 x4
= x3
+ r
* 1.5 * COS(a2
): y4
= y3
+ r
* 1.5 * SIN(a2
) drawLink x3
, y3
, scale
, x4
, y4
, scale
, _RGB32(red
+ 50, green
+ 25, blue
+ 12) r = r * .5
fcirc x1
, y1
, r
, _RGB32(red
- 20, green
- 10, blue
- 5) x2
= x1
+ (r
+ 1) * COS(heading
- _PI(1 / 12)): y2
= y1
+ (r
+ 1) * SIN(heading
- _PI(1 / 12)) fcirc x2, y2, r * .2, &HFF000000
x2
= x1
+ (r
+ 1) * COS(heading
+ _PI(1 / 12)): y2
= y1
+ (r
+ 1) * SIN(heading
+ _PI(1 / 12)) fcirc x2, y2, r * .2, &HFF000000
r = r * 2
x1
= x
+ r
* .9 * COS(heading
+ _PI): y1
= y
+ r
* .9 * SIN(heading
+ _PI) TiltedEllipseFill
0, x1
, y1
, r
, .7 * r
, heading
+ _PI, _RGB32(red
, green
, blue
)
DIM a
, a1
, a2
, x3
, x4
, x5
, x6
, y3
, y4
, y5
, y6
x3
= x1
+ r1
* COS(a1
): y3
= y1
+ r1
* SIN(a1
) x4
= x1
+ r1
* COS(a2
): y4
= y1
+ r1
* SIN(a2
) x5
= x2
+ r2
* COS(a1
): y5
= y2
+ r2
* SIN(a1
) x6
= x2
+ r2
* COS(a2
): y6
= y2
+ r2
* SIN(a2
) fquad x3, y3, x4, y4, x5, y5, x6, y6, c
fcirc x1, y1, r1, c
fcirc x2, y2, r2, c
'need 4 non linear points (not all on 1 line) list them clockwise so x2, y2 is opposite of x4, y4
ftri x1, y1, x2, y2, x4, y4, c
ftri x3, y3, x4, y4, x1, y1, c
Radius
= ABS(R
): RadiusError
= -Radius: X
= Radius: Y
= 0 LINE (CX
- X
, CY
)-(CX
+ X
, CY
), C
, BF
RadiusError = RadiusError + Y * 2 + 1
LINE (CX
- Y
, CY
- X
)-(CX
+ Y
, CY
- X
), C
, BF
LINE (CX
- Y
, CY
+ X
)-(CX
+ Y
, CY
+ X
), C
, BF
X = X - 1
RadiusError = RadiusError - X * 2
Y = Y + 1
LINE (CX
- X
, CY
- Y
)-(CX
+ X
, CY
- Y
), C
, BF
LINE (CX
- X
, CY
+ Y
)-(CX
+ X
, CY
+ Y
), C
, BF
prc
= _RGB32(255, 255, 255, 255) mx2 = max + max
_SOURCE tef
'point wont read without this! LINE (lasti
, lastj
)-(i
, j
), prc
lasti = i: lastj = j
x = 0
x = x + 1
xleft(y) = x
x = x + 1
x = x + 1
IF x
= mx2
THEN xright
(y
) = xleft
(y
) ELSE xright
(y
) = x
IF xleft
(y
) <> mx2
THEN LINE (xleft
(y
) + x0
- max
, y
+ y0
- max
)-(xright
(y
) + x0
- max
, y
+ y0
- max
), c
, BF