Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- GLOBAL sphere% = 1
- GLOBAL pitch#, bank#, yaw#
- pitch = 0.0
- bank = 0.0
- yaw = 0.0
- GLOBAL texture% = GENSPRITE()
- LOADSPRITE "card.bmp", texture // 512x1 pixel bitmap
- CreateSphere(sphere, 900, 60, RGB(255,255,255))
- WHILE TRUE
- VIEWPORT 0,0,320,320
- X_MAKE3D 1,1000,60
- X_CAMERA 0,0,0, 0,0,1 // look into Z-direction
- X_MOVEMENT 0, 0, 0
- // angle°, pitch, yaw, bank
- X_ROTATION 0.0, 1, 1, 1 // reset to zero rotated state
- X_ROTATION -bank, 0, 0, 1 // apply bank angle rotation
- X_ROTATION -pitch, 1, 0, 0 // apply pitch angle rotation
- X_ROTATION -yaw, 0, 1, 0 // apply yaw angle rotation
- X_SETTEXTURE texture, -1 // apply texture map
- X_DRAWOBJ sphere, 0
- VIEWPORT 0,0,0,0
- SHOWSCREEN
- WEND
- END
- // ------------------------------------------------------------- //
- // -=# SPHERE #=-
- // ------------------------------------------------------------- //
- FUNCTION CreateSphere: num, r, n, col
- LOCAL i,j, theta1, theta2, theta3, pi
- LOCAL pi# = ACOS(0)*2
- IF r < 0 THEN r = -r
- IF n < 4 THEN n = 4
- X_AUTONORMALS 2 // smooth edges
- X_OBJSTART num
- FOR j=0 TO INTEGER(n/2) -1
- theta1 = j * 2*pi / n - pi/2;
- theta2 = (j + 1) * 2*pi / n - pi/2;
- FOR i=0 TO n
- theta3 = i * 2*pi / n;
- X_OBJADDVERTEX r*COS(theta2) * COS(theta3), r*SIN(theta2), _
- r*COS(theta2) * SIN(theta3), i/n, 2*(j+1)/n, col
- X_OBJADDVERTEX r*COS(theta1) * COS(theta3), r*SIN(theta1), _
- r*COS(theta1) * SIN(theta3), i/n, 2*j/n, col
- NEXT
- X_OBJNEWGROUP
- NEXT
- X_OBJEND
- ENDFUNCTION // n
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement