PicoMiteVGA DEMO


Author Message
javavi

Guru

Joined: 01/10/2023
Location: Ukraine
Posts: 560
Posted: 10:45am 02 May 2026      

Rotating 2D sphere with Option TraceCache
Option TraceCache On 32
CLS
Dim N=600, R=200
Dim X(N), Y(N), Z(N)

For i=1 To N
TH=Pi*Rnd
PH=2*Pi*Rnd
X(i)=R*Sin(TH)*Cos(PH)
Y(i)=R*Sin(TH)*Sin(PH)
Z(i)=R*Cos(TH)
Next

AY=0.05: CY=Cos(AY): SY=Sin(AY)
AX=0.03: CX=Cos(AX): SX=Sin(AX)
OX=MM.HRES\2: OY=MM.VRES\2

Do
Timer =0
For i=1 To N
 If Z(i)>0 Then Pixel OX+X(i),OY+Y(i),0
 XT=X(i)*CY-Z(i)*SY:ZT=X(i)*SY+Z(i)*CY
 X(i)=XT:Z(i)=ZT
 YT=Y(i)*CX-Z(i)*SX:ZT=Y(i)*SX+Z(i)*CX
 Y(i)=YT: Z(i)=ZT
 If Z(i)>0 Then Pixel OX+X(i),OY+Y(i)
Next
Print @(0,0)Timer;
Loop While Inkey$=""