Task

Draw a   cuboid   with relative dimensions of    2 × 3 × 4. 



The cuboid can be represented graphically, or in   ASCII art,   depending on the language capabilities.

To fulfill the criteria of being a cuboid, three faces must be visible.

Either static or rotational projection is acceptable for this task.



Related tasks
 draw a sphere
 draw a rotating cube
 write language name in 3D ASCII
 draw a Deathstar


#include once "GL/gl.bi"
#include once "GL/glu.bi"
 
dim rquad as single
 
screen 18, 16, , 2
 
glViewport 0, 0, 640, 480                      '' Reset The Current Viewport
glMatrixMode GL_PROJECTION                     '' Select The Projection Matrix
glLoadIdentity                                 '' Reset The Projection Matrix
gluPerspective 45.0, 640.0/480.0, 0.1, 100.0   '' Calculate The Aspect Ratio Of The Window
glMatrixMode GL_MODELVIEW                      '' Select The Modelview Matrix
glLoadIdentity                                 '' Reset The Modelview Matrix
glShadeModel GL_SMOOTH                         '' Enable Smooth Shading
glClearColor 0.0, 0.0, 0.0, 0.5                '' Black Background
glClearDepth 1.0                               '' Depth Buffer Setup
glEnable GL_DEPTH_TEST                         '' Enables Depth Testing
glDepthFunc GL_LEQUAL                          '' The Type Of Depth Testing To Do
glHint GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST    '' Really Nice Perspective Calculations
do
	glClear GL_COLOR_BUFFER_BIT OR GL_DEPTH_BUFFER_BIT      '' Clear Screen And Depth Buffer
	glLoadIdentity                                          '' Reset The Current Modelview Matrix
 
	glLoadIdentity                                          '' Reset The Current Modelview Matrix
	glTranslatef 0.0, 0.0, -7.0                             '' Move Right 1.5 Into The Screen 7.0
	glRotatef rquad,1.0, 1.0, 1.0                           '' Rotate The Quad On The X axis ( NEW )
 
	glBegin GL_QUADS                                        '' Draw A Quad
    glColor3f 0.0, 1.0, 0.0                              '' Set The Color To Blue
    glVertex3f 1.0, 1.5, -2.0                            '' Top Right Of The Quad (Top)
    glVertex3f -1.0, 1.5, -2.0                           '' Top Left Of The Quad (Top)
    glVertex3f -1.0, 1.5, 2.0                            '' Bottom Left Of The Quad (Top)
    glVertex3f 1.0, 1.5, 2.0                             '' Bottom Right Of The Quad (Top)
 
    glColor3f 1.0, 0.5, 0.0                              '' Set The Color To Orange
    glVertex3f 1.0, -1.5, 2.0                            '' Top Right Of The Quad (Bottom)
    glVertex3f -1.0, -1.5, 2.0                           '' Top Left Of The Quad (Bottom)
    glVertex3f -1.0, -1.5, -2.0                          '' Bottom Left Of The Quad (Bottom)
    glVertex3f 1.0, -1.5, -2.0                           '' Bottom Right Of The Quad (Bottom)
 
    glColor3f 1.0, 0.0, 0.0                              '' Set The Color To Red
    glVertex3f 1.0, 1.5, 2.0                             '' Top Right Of The Quad (Front)
    glVertex3f -1.0, 1.5, 2.0                            '' Top Left Of The Quad (Front)
    glVertex3f -1.0, -1.5, 2.0                           '' Bottom Left Of The Quad (Front)
    glVertex3f 1.0, -1.5, 2.0                            '' Bottom Right Of The Quad (Front)
 
    glColor3f 1.0, 1.0, 0.0                              '' Set The Color To Yellow
    glVertex3f 1.0, -1.5, -2.0                           '' Top Right Of The Quad (Back)
    glVertex3f -1.0, -1.5, -2.0                          '' Top Left Of The Quad (Back)
    glVertex3f -1.0, 1.5, -2.0                           '' Bottom Left Of The Quad (Back)
    glVertex3f 1.0, 1.5, -2.0                            '' Bottom Right Of The Quad (Back)
 
    glColor3f 0.0, 0.0, 1.0                              '' Set The Color To Blue
    glVertex3f -1.0, 1.5, 2.0                            '' Top Right Of The Quad (Left)
    glVertex3f -1.0, 1.5, -2.0                           '' Top Left Of The Quad (Left)
    glVertex3f -1.0, -1.5, -2.0                          '' Bottom Left Of The Quad (Left)
    glVertex3f -1.0, -1.5, 2.0                           '' Bottom Right Of The Quad (Left)
 
    glColor3f 1.0, 0.0, 1.0                              '' Set The Color To Violet
    glVertex3f 1.0, 1.5, -2.0                            '' Top Right Of The Quad (Right)
    glVertex3f 1.0, 1.5, 2.0                             '' Top Left Of The Quad (Right)
    glVertex3f 1.0, -1.5, 2.0                            '' Bottom Left Of The Quad (Right)
    glVertex3f 1.0, -1.5, -2.0                           '' Bottom Right Of The Quad (Right)
    glEnd                                                   '' Done Drawing The Quad
 
	rquad -= 0.15                                     
 
	flip
loop while inkey = ""