Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Irregular Beauty
#1
IRREGULAR BEAUTY 3D


 Beyond isometric, the world unfolds,
 In 3D grace, its secrets told.
 Irregular forms, yet beauty reigns,
 Elegance shines where chaos remains.

   
click the image to zoom-in

Code:
'==================================================
' IRREGULAR BEAUTY 3D
' Beyond isometric, the world unfolds,
' In 3D grace, its secrets told.
' Irregular forms, yet beauty reigns,
' Elegance shines where chaos remains.
'
' References :
' - Pillars s3d (Marcus)
'==================================================

#win32

'library
include "s3d.n7"

'window size
set window "Irregular Beauty 3D", 480*screenw()/screenh(), 480, false
set redraw off

'color definition
black = [0,0,0]
white = [255,255,255]

'set up 3D view
S3D_SetView(primary, rad(90), 0.1, 360)
S3D_SetPerspectiveCorrection(S3D_NORMAL)

'cube 3D
cube = S3D_BeginMesh()
    S3D_Translate(0, -1, 0)
    S3D_Begin(S3D_QUADS)
   
        S3D_Color(0,0,0) 'bottom
        S3D_Vertex(1, 1, -1, 0, 0)
        S3D_Vertex(1, 1, 1, 0, 0)
        S3D_Vertex(-1, 1, 1, 0, 0)
        S3D_Vertex(-1, 1, -1, 0, 0)
       
        S3D_Color(200, 200, 0) 'top color
        S3D_Vertex(1, -1, 1, 0, 0)
        S3D_Vertex(1, -1, -1, 0, 0)   
        S3D_Vertex(-1, -1, -1, 0, 0)
        S3D_Vertex(-1, -1, 1, 0, 0)
       
        S3D_Color(200, 200, 0) 'back
        S3D_Vertex(1, 1, 1, 0, 0)
        S3D_Vertex(1, -1, 1, 0, 0)
        S3D_Vertex(-1, -1, 1, 0, 0)
        S3D_Vertex(-1, 1, 1, 0, 0)
       
        S3D_Color(150, 150, 0) 'front color
        S3D_Vertex(1, -1, -1, 0, 0)
        S3D_Vertex(1, 1, -1, 0, 0)
        S3D_Vertex(-1, 1, -1, 0, 0)
        S3D_Vertex(-1, -1, -1, 0, 0)
       
        S3D_Color(60, 60, 0) 'left color
        S3D_Vertex(-1, 1, 1, 0, 0)
        S3D_Vertex(-1, -1, 1, 0, 0)
        S3D_Vertex(-1, -1, -1, 0, 0)
        S3D_Vertex(-1, 1, -1, 0, 0)
       
        S3D_Color(60, 60, 0) 'right color
        S3D_Vertex(1, 1, -1, 0, 0)
        S3D_Vertex(1, -1, -1, 0, 0)
        S3D_Vertex(1, -1, 1, 0, 0)
        S3D_Vertex(1, 1, 1, 0, 0)
       
    S3D_End()           
S3D_EndMesh()


'-----------
' MAIN LOOP
'-----------
while not keydown(KEY_ESCAPE, true)
    angleA = (angleA + 90*0.01)%360
    S3D_Clear()
     
    'clear screen
    set color black;cls
    set color white

    'rotate
    S3D_RotateX(rad(90))
    S3D_RotateY(rad(135))
           
    'the whole pillars translation
    S3D_Translate(-43,83,-45)   
   
    for z = 0 to 30 - 1
        for x = 0 to 30 - 1         
           
            'pattern
            d = ((15-x) ^ 2 + (15-z) ^ 2) ^ 0.5
            s = 1.5*sin(d*2+rad(angleA))+2

            S3D_Push()
            S3D_Translate(x*3, 0, z*3)
            S3D_Scale(1.2, s, 1.2)
            S3D_Mesh(cube,0)
            S3D_Pop()                                        
                                                                                                                                                                 
        next
    next
           
    S3D_Render()

    redraw
    fwait 60
wend
Reply
#2
Cool... Nicely done!
Logic is the beginning of wisdom.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)