Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
100 lines or less...
#17
Here's my (GL) mod of the bubble universe...I am going to work on it more to try to get at least a few different colours for the spheres

Code: (Select All)
TYPE GL_Vertex_F
  X AS SINGLE
  Y AS SINGLE
  Z AS SINGLE
END TYPE
TYPE GL_Triangle
  Vertex1 AS GL_Vertex_F
  Vertex2 AS GL_Vertex_F
  Vertex3 AS GL_Vertex_F
END TYPE
DIM SHARED xmax AS INTEGER, ymax AS INTEGER, n AS INTEGER, r AS DOUBLE, x AS DOUBLE, y AS DOUBLE, v AS DOUBLE, t AS DOUBLE, hw, hh, sphere_list_handle AS _UNSIGNED LONG, initialized AS INTEGER ' Flag to run setup only once
xmax = 800
ymax = 600
n = 100
r = (_PI * 2) / 235
hw = (xmax / 2)
hh = (ymax / 2)
SCREEN _NEWIMAGE(xmax, ymax, 32)
_TITLE "Bubble Universe 3D Spheres Unseen Edit"
DO
LOOP UNTIL _KEYDOWN(27)
SUB _GL
  STATIC first_run AS INTEGER ' Static variable retains value between calls
  _GLCLEARCOLOR 0, 0, 0, 1
  _GLMATRIXMODE _GL_MODELVIEW
  _GLSHADEMODEL _GL_SMOOTH
  _GLENABLE _GL_DEPTH_TEST
  _GLMATRIXMODE _GL_PROJECTION
  _GLLOADIDENTITY
  _GLUPERSPECTIVE 120, 800 / 600, .01, 1000
  _GLMATRIXMODE _GL_MODELVIEW
  _GLLOADIDENTITY
  IF first_run = 0 THEN
    sphere_list_handle = GL_CreateColorSphereList(3, 10, 10, .1, .1, .7)
    first_run = 1
  ELSE
    _GLCLEAR _GL_COLOR_BUFFER_BIT OR _GL_DEPTH_BUFFER_BIT
    _GLLOADIDENTITY
    _GLTRANSLATEF -400, 300, -180
    FOR i = 0 TO n
      FOR j = 0 TO n
        u = SIN(i + v) + SIN(r * i + x)
        v = COS(i + v) + COS(r * i + x)
        x = u + t
        _GLPUSHMATRIX
        _GLTRANSLATEF hw + u * hw * .5, -(hh + v * hh * .5), 0
        _GLCALLLIST sphere_list_handle
        _GLPOPMATRIX
      NEXT
    NEXT
    t = t + 0.01 ' Update the time variable
    _DISPLAY
  END IF
END SUB
FUNCTION GL_CreateColorSphereList~& (Rad!, Slices%, Stacks%, r!, g!, b!)
  DIM AS GL_Vertex_F p1, p2, p3, p4
  DIM tri AS GL_Triangle
  list_handle~& = _GLGENLISTS(1)
  _GLNEWLIST list_handle~&, _GL_COMPILE
  _GLCOLOR3F r!, g!, b!
  lon_step! = (2 * _PI) / Slices%
  lat_step! = _PI / Stacks%
  _GLBEGIN _GL_TRIANGLES
  FOR j = 0 TO Stacks% - 1
    lat_rad! = -_PI / 2 + j * lat_step!
    next_lat_rad! = -_PI / 2 + (j + 1) * lat_step!
    FOR i = 0 TO Slices% - 1
      lon_rad! = i * lon_step!
      next_lon_rad! = (i + 1) * lon_step!
      p1.X = Rad! * COS(lat_rad!) * COS(lon_rad!)
      p1.Y = Rad! * SIN(lat_rad!)
      p1.Z = Rad! * COS(lat_rad!) * SIN(lon_rad!)
      p2.X = Rad! * COS(lat_rad!) * COS(next_lon_rad!)
      p2.Y = Rad! * SIN(lat_rad!)
      p2.Z = Rad! * COS(lat_rad!) * SIN(next_lon_rad!)
      p3.X = Rad! * COS(next_lat_rad!) * COS(next_lon_rad!)
      p3.Y = Rad! * SIN(next_lat_rad!)
      p3.Z = Rad! * COS(next_lat_rad!) * SIN(next_lon_rad!)
      p4.X = Rad! * COS(next_lat_rad!) * COS(lon_rad!)
      p4.Y = Rad! * SIN(next_lat_rad!):
      p4.Z = Rad! * COS(next_lat_rad!) * SIN(lon_rad!)
      tri.Vertex1 = p1
      tri.Vertex2 = p2
      tri.Vertex3 = p3
      _GLVERTEX3F p1.X, p1.Y, p1.Z
      _GLVERTEX3F p2.X, p2.Y, p2.Z
      _GLVERTEX3F p3.X, p3.Y, p3.Z
      tri.Vertex1 = p1
      tri.Vertex2 = p3
      tri.Vertex3 = p4
      _GLVERTEX3F p1.X, p1.Y, p1.Z
      _GLVERTEX3F p3.X, p3.Y, p3.Z
      _GLVERTEX3F p4.X, p4.Y, p4.Z
    NEXT i
  NEXT j
  _GLEND
  _GLENDLIST
  GL_CreateColorSphereList~& = list_handle~&
END FUNCTION

John
Reply


Messages In This Thread
100 lines or less... - by Unseen Machine - 10-24-2025, 01:40 AM
RE: 100 lines or less... - by tantalus - 10-24-2025, 07:45 AM
RE: 100 lines or less... - by Magdha - 10-24-2025, 08:06 AM
RE: 100 lines or less... - by bplus - 10-24-2025, 12:19 PM
RE: 100 lines or less... - by SMcNeill - 10-24-2025, 01:17 PM
RE: 100 lines or less... - by bplus - 10-24-2025, 04:05 PM
RE: 100 lines or less... - by SMcNeill - 10-24-2025, 06:37 PM
RE: 100 lines or less... - by Unseen Machine - 10-24-2025, 09:46 PM
RE: 100 lines or less... - by madscijr - 10-24-2025, 10:10 PM
RE: 100 lines or less... - by bplus - 10-25-2025, 12:15 AM
RE: 100 lines or less... - by dbox - 10-25-2025, 01:49 AM
RE: 100 lines or less... - by Unseen Machine - 10-24-2025, 11:08 PM
RE: 100 lines or less... - by dbox - 10-24-2025, 11:32 PM
RE: 100 lines or less... - by Dav - 10-24-2025, 11:44 PM
RE: 100 lines or less... - by dbox - 10-25-2025, 12:10 AM
RE: 100 lines or less... - by Unseen Machine - 10-25-2025, 01:59 AM
RE: 100 lines or less... - by Unseen Machine - 11-01-2025, 03:06 AM
RE: 100 lines or less... - by MasterGy - 11-01-2025, 10:33 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Bouncing lines & boxes Dav 6 1,966 04-12-2025, 06:14 AM
Last Post: madscijr
  100 prisoners' problem TempodiBasic 9 2,693 04-17-2023, 07:30 PM
Last Post: bplus
  My masterpiece - 13,500+ lines - WIM-Tools, Windows Image Management Tools hanness 0 626 05-09-2022, 09:58 PM
Last Post: hanness

Forum Jump:


Users browsing this thread: 1 Guest(s)