'Coded By Ashish
'4 may, 2021
'edited : 9 may,2021
'404 pattern 400, 0, 0, 600, 800, 600, 600, Int(Rnd * 255), 50 + Int(Rnd * 205)
Dim ox
, oy
, r
, start_ang
, h
, clr_start
, clr_width
'creating new set of vertices of equilateral triangle
n = 0
'Print start_ang, start_ang + _Pi(2)
'Print i
vx
(n
) = ox
+ r
* Cos(i
): vy
(n
) = oy
+ r
* Sin(i
) n = n + 1
h = r * 1.5
'color settings
pattern vx(0), vy(0), vx(1), vy(1), vx(2), vy(2), h, clr_start, clr_width
'_Display
'_Delay 0.25
'GoTo 404
Sub pattern
(x0
, y0
, x1
, y1
, x2
, y2
, d_max
, s_min
, s_width
) mx = (x1 + x2) / 2: my = (y1 + y2) / 2
d
= Int(Sqr((mx
- x0
) ^ 2 + (my
- y0
) ^ 2)) drawTriangleSolid x0
, y0
, x1
, y1
, x2
, y2
, hsb
(map
(d
, 10, d_max
, s_min
, (s_max
+ s_width
) Mod 255), 255, 128, map
(d
, 10, d_max
, 50, 255)) pattern mx, my, x0, y0, x1, y1, d_max, s_min, s_width
pattern mx, my, x0, y0, x2, y2, d_max, s_min, s_width
If Rnd > 0.5 Then pattern mx
, my
, x0
, y0
, x1
, y1
, d_max
, s_min
, s_width
Else pattern mx
, my
, x0
, y0
, x2
, y2
, d_max
, s_min
, s_width
Sub drawTriangleSolid
(x1
, y1
, x2
, y2
, x3
, y3
, c~&
) drawTriangle_init = 1
Sub drawTriangle
(x1
, y1
, x2
, y2
, x3
, y3
, c~&
) Line (x1
, y1
)-(x2
, y2
), c~&
Line (x2
, y2
)-(x3
, y3
), c~&
Line (x3
, y3
)-(x1
, y1
), c~&
'method adapted form http://stackoverflow.com/questions/4106363/converting-rgb-to-hsb-colors
H = map(__H, 0, 255, 0, 360)
S = map(__S, 0, 255, 0, 1)
B = map(__B, 0, 255, 0, 1)
hsb~&
= _RGBA32(B
* 255, B
* 255, B
* 255, A
)
fmx = B - (B * S) + S
fmn = B + (B * S) - S
fmx = B + (B * S)
fmn = B - (B * S)
H = H - 360
H = H / 60
H
= H
- (2 * Int(((iSextant
+ 1) Mod 6) / 2))
fmd = (H * (fmx - fmn)) + fmn
fmd = fmn - (H * (fmx - fmn))
'from p5js.bas
Function map!
(value!
, minRange!
, maxRange!
, newMinRange!
, newMaxRange!
) map! = ((value! - minRange!) / (maxRange! - minRange!)) * (newMaxRange! - newMinRange!) + newMinRange!