'cilem programu je rotujici koule pomoci maptriangle.
texture& = Textur&
init_Sphere 0.1, 0.1, -15, 10
'test
RotoXZ
draw_Sphere texture&
'one circle circuit is set here as 8 steps (6.28/8)
O = radius / 8 'step on circle circuit
Hl = radius / 16 'depth step in Z axis
nz = cz + radius 'nz = new Z = new depth
FOR r1
= 0 TO radius
STEP O
'udelej 8 kruznic ' pi = JK(cy, cz, nY, nz, r1)
' pi2 = JK(cx, cz, nX, nz, r1)
v(i).X = nX
v(i).Y = nY
v(i).Z = nz
v(i).cZ = cz
v(i).cY = cy
v(i).cX = cx
' v(i).Pi = pi
' v(i).Pi2 = pi2
radius3D
= SQR((cx
- nX
) ^ 2 + (cy
- nY
) ^ 2 + (cz
- nz
) ^ 2)
v(i).R = radius3D
pi = JK(cy, cz, nY, nz, radius3D)
pi2 = JK(cx, cz, nX, nz, radius3D)
v(i).Pi = pi
v(i).Pi2 = pi2
i = i + 1
nz = nz - Hl
' pi = JK(cy, cz, nY, nz, r1)
'pi2 = JK(cx, cz, nX, nz, r1)
v(i).X = nX
v(i).Y = nY
v(i).Z = nz
v(i).cZ = cz
v(i).cY = cy
v(i).cX = cx
' v(i).Pi = pi
' v(i).Pi2 = pi2
radius3D
= SQR((cx
- nX
) ^ 2 + (cy
- nY
) ^ 2 + (cz
- nz
) ^ 2) v(i).R = radius3D
pi = JK(cy, cz, nY, nz, radius3D)
pi2 = JK(cx, cz, nX, nz, radius3D)
v(i).Pi = pi
v(i).Pi2 = pi2
i = i + 1
nz = nz - Hl
i = i - 1
'je to po osmi zaznamech na jeden obvod 'every one circle circuit contains 8 steps (so one radius is not circle, but 8-angle)
c = 1
i2 = 9 + i
_MAPTRIANGLE (0, 0)-(W
, 0)-(0, H
), texture
TO(v
(i
- 1).X
, v
(i
- 1).Y
, v
(i
- 1).Z
)-(v
(i
).X
, v
(i
).Y
, v
(i
).Z
)-(v
(i2
- 1).X
, v
(i2
- 1).Y
, v
(i2
- 1).Z
) _MAPTRIANGLE (W
, 0)-(0, H
)-(W
, H
), texture
TO(v
(i
).X
, v
(i
).Y
, v
(i
).Z
)-(v
(i2
- 1).X
, v
(i2
- 1).Y
, v
(i2
- 1).Z
)-(v
(i2
).X
, v
(i2
).Y
, v
(i2
).Z
) c = c + 9
angle = angle + .0001
cx = v(r).cX
cz = v(r).cZ
pi = v(r).Pi2
radius = v(r).R
nx
= cx
+ SIN(pi
+ angle
) * radius
nz
= cz
+ COS(pi
+ angle
) * radius
v(r).Z = nz
v(r).X = nx
angle = angle + .001
cy = v(r).cY
cz = v(r).cZ
pi = v(r).Pi
radius = v(r).R
nz
= cz
+ SIN(pi
+ angle
) * radius
ny
= cy
+ COS(pi
+ angle
) * radius
v(r).Z = nz
v(r).Y = ny
FUNCTION JK!
(cx
, cy
, px
, py
, R!
) 'return vector angle LenX! = cx - px
LenY! = cy - py
jR! = 1 / R!
jX! = LenX! * jR!
jY! = LenY! * jR!
sinusAlfa! = jX!
Q = 1
IF px
>= cx
AND py
>= cy
THEN Q
= 1 ' select angle to quadrant JK! = alfaB!
LINE (f
, f
)-(100 - f
, 100 - f
), &HFFFFFFFF, B
LINE (5, 5)-(95, 95), &H00000000, BF