| Posted: 10:45am 02 May 2026 |
Copy link to clipboard |
 Print this post |
|
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$="" |