scrx% = _X
scry% = _Y
OPENW #1,0,0,srcx%,scry%,0
FULLW #1
FOR z = 600 TO 1 STEP -0.1
FOR x = 0 TO scrx% STEP 5
x1 = x
x2 = x + 5
y1 = @alty(x1,z)
y2 = @alty(x2,z)
a = FN angle(x1,y1,x2,y2)
RGBCOLOR RGB(127 + SIN(a + 1) * 127,0,0)
LINE x1,y1,x2,y2
NEXT x
NEXT z
KEYGET rien%
CLOSEW #1
FUNCTION alty(x,z)
LOCAL h
h = SIN(SQR((x - (scrx% / 2)) ^ 2 + (z - 300) ^ 2) / 100) * COS(SQR(x ^ 2 + z ^ 2) / 100) * 100
RETURN scry% / 2 - z + scry% / 2 - SIN(h / 10 + COS(h / 3) / 10) * 100 * SIN(COS(100 - h / 50))
ENDFUNC
FUNCTION angle(x1,y1,x2,y2)
LOCAL lx,a,h
lx = x2 - x1
h = SQR(lx ^ 2 + (y2 - y1) ^ 2)
IF h > 0
lx = lx / h
IF y2 > y1
a = ASIN(lx)
ELSE
a = PI - ASIN(lx)
ENDIF
ENDIF
RETURN a
ENDFUNC
|