Selasa, 10 Juli 2012

Basic4GL Bikin Truk Pemadam Kebakaran 3D Dengan Banyak Tombol Bergerak

    











sub bemper()
     glBegin(GL_QUADS)
   
     glColor3f(1,1,1)
     glVertex3f(0.0,1.0,0.0)
     glVertex3f(2.0,3.0,0.0)
     glVertex3f(2.0,0.0,0.0)
     glVertex3f(0.0,0.0,0.0)
    
     glVertex3f(0.0,0.0,-4.0)
     glVertex3f(2.0,0.0,-4.0)
     glVertex3f(2.0,0.0,0.0)
     glVertex3f(0.0,0.0,0.0)

     glVertex3f(0.0,1.0,-4.0)
     glVertex3f(2.0,3.0,-4.0)
     glVertex3f(2.0,0.0,-4.0)
     glVertex3f(0.0,0.0,-4.0)
    
     glColor3f(1,0,0)
     glVertex3f(0.0,1.0,-4.0)
     glVertex3f(2.0,3.0,-4.0)
     glVertex3f(2.0,3.0,0.0)
     glVertex3f(0.0,1.0,0.0)                     

     glColor3f(1,0,0)
     glVertex3f(0.0,0.0,-4.0)    
     glVertex3f(0.0,1.0,-4.0)
     glVertex3f(0.0,1.0,0.0)                 
     glVertex3f(0.0,0.0,0.0)


    
     glEnd()
     end sub
    
     sub pintu()
     glBegin(GL_QUADS)
    
     glColor3f(1,1,1)
     glVertex3f(0.0,4.0,0.0)
     glVertex3f(4.0,5.0,0.0)
     glVertex3f(4.0,0.0,0.0)
     glVertex3f(0.0,0.0,0.0)
    
     glVertex3f(0.0,0.0,-4.0)
     glVertex3f(4.0,0.0,-4.0)
     glVertex3f(4.0,0.0,0.0)
     glVertex3f(0.0,0.0,0.0)
    
     'glColor3f(1,0,0)
     glVertex3f(4.0,4.0,-4.0)
     glVertex3f(4.0,5.0,-4.0)
     glVertex3f(4.0,0.0,-4.0)
     glVertex3f(0.0,0.0,-4.0)
    
     glColor3f(1,0,0)
     glVertex3f(0.0,4.0,-4.0)
     glVertex3f(4.0,5.0,-4.0)
     glVertex3f(4.0,5.0,0.0)
     glVertex3f(0.0,4.0,0.0)
    
     glColor3f(1,1,1)
     glVertex3f(0.0,0.0,-4.0)
     glVertex3f(0.0,4.0,-4.0)
     glVertex3f(0.0,4.0,0.0)
     glVertex3f(0.0,0.0,0.0)
    
     glVertex3f(4.0,5.0,0.0)
     glVertex3f(4.0,5.0,-4.0)
     glVertex3f(4.0,0.0,-4.0)
     glVertex3f(4.0,0.0,0.0)
     glEnd()
     end sub           
    
     sub cerobong()
     glBegin(GL_QUADS)
    glColor3f(1,0,0)
    
     glVertex3f(0.0,0.5,0.0)
     glVertex3f(5.0,0.5,0.0)
     glVertex3f(5.0,0.0,0.0)
     glVertex3f(0.0,0.0,0.0)
    
     glVertex3f(0.0,0.0,-1)
     glVertex3f(5.0,0.0,-1)
     glVertex3f(5.0,0.0,0.0)   
     glVertex3f(0.0,0.0,0.0)

     glVertex3f(0.0,0.5,-1)
     glVertex3f(5.0,0.5,-1)
     glVertex3f(5.0,0.0,-1)
     glVertex3f(0.0,0.0,-1)

     glVertex3f(0.0,0.5,-1)
     glVertex3f(5.0,0.5,-1)
     glVertex3f(5.0,0.5,0.0)
     glVertex3f(0.0,0.5,0.0)

     glVertex3f(0.0,0.0,-1)
     glVertex3f(0.0,0.5,-1)
     glVertex3f(0.0,0.5,0.0)   
     glVertex3f(0.0,0.0,0.0)
    
     glVertex3f(5.0,0.5,0.0)
     glVertex3f(5.0,0.5,-1)
     glVertex3f(5.0,0.0,-1)
     glVertex3f(5.0,0.0,0.0)
                          
     glVertex3f(5.0,0.0,-0.5)                     
     glVertex3f(5.0,0.0,-0.5)                     
     glVertex3f(5.0,0.5,0.0)
     glVertex3f(5.0,0.0,0.0)
    
     glEnd()
     end sub
    

     sub mesin1()
     glBEgin(GL_QUADS) 
     glColor3f(1,1,1)  

     glVertex3f(0.0,2.0,0.0)
     glVertex3f(6.0,2.0,0.0)
     glVertex3f(6.0,0.0,0.0)
     glVertex3f(0.0,0.0,0.0)
                           
     glVErtex3f(0.0,0.0,-4.0)
     glVertex3f(6.0,0.0,-4.0)
     glVertex3f(6.0,0.0,0.0)
     glVertex3f(0.0,0.0,0.0)
    
     glVertex3f(0.0,2.0,-4.0)
     glVertex3f(6.0,2.0,-4.0)
     glVertex3f(6.0,0.0,-4.0)
     glVertex3f(0.0,0.0,-4.0)
    
     glVertex3f(0.0,2.0,-4.0)
     glVertex3f(6.0,2.0,-4.0)
     glVertex3f(6.0,2.0,0.0)
     glVertex3f(0.0,2.0,0.0)
    
    
     glVertex3f(6.0,2.0,0.0)
     glVertex3f(6.0,2.0,-4.0)
     glVertex3f(6.0,0.0,-4.0)
     glVertex3f(6.0,0.0,0.0)

     glEnd()
     end sub
    
    
     sub mesin2 ()
     glBegin(GL_QUADS)
    
     glVertex3f(0.0,1.0,0.0)
     glVertex3f(9.0,1.0,0.0)
     glVertex3f(9.0,0.0,0.0)
     glVertex3f(0.0,0.0,0.0)
                           
     glVErtex3f(0.0,0.0,-2.0)
     glVertex3f(9.0,0.0,-2.0)
     glVertex3f(9.0,0.0,0.0)
     glVertex3f(0.0,0.0,0.0)
    
     glVertex3f(0.0,1.0,-2.0)
     glVertex3f(9.0,1.0,-2.0)
     glVertex3f(9.0,0.0,-2.0)
     glVertex3f(0.0,0.0,-2.0)
    
     glVertex3f(0.0,1.0,-2.0)
     glVertex3f(9.0,1.0,-2.0)
     glVertex3f(9.0,1.0,0.0)
     glVertex3f(0.0,1.0,0.0)
    
     glVertex3f(0.0,0.0,-2.0)
     glVertex3f(0.0,1.0,-2.0)
     glVertex3f(0.0,1.0,0.0)
     glVertex3f(0.0,0.0,0.0)

     glVertex3f(9.0,1.0,0.0)
     glVertex3f(9.0,1.0,-2.0)
     glVertex3f(9.0,0.0,-2.0)
     glVertex3f(9.0,0.0,0.0)
    
     glEnd()
     end sub
    
     sub roda(heh#)
     glBegin(GL_QUADS)
     glColor3f(1,0,0)  
         
     glVertex3f(0.0,heh#,0.0)
     glVertex3f(heh#,heh#,0.0)
     glVertex3f(heh#,0.0,0.0)
     glVertex3f(0.0,0.0,0.0)
                           
     glVErtex3f(0.0,0.0,-0.5)
     glVertex3f(heh#,0.0,-0.5)
     glVertex3f(heh#,0.0,0.0)
     glVertex3f(0.0,0.0,0.0)
    
     glVertex3f(0.0,heh#,-0.5)
     glVertex3f(heh#,heh#,-0.5)
     glVertex3f(heh#,0.0,-0.5)
     glVertex3f(0.0,0.0,-0.5)
    
     glVertex3f(0.0,heh#,-0.5)
     glVertex3f(heh#,heh#,-0.5)
     glVertex3f(heh#,heh#,0.0)
     glVertex3f(0.0,heh#,0.0)
    
     glVertex3f(0.0,0.0,-0.5)
     glVertex3f(0.0,heh#,-0.5)
     glVertex3f(0.0,heh#,0.0)
     glVertex3f(0.0,0.0,0.0)

     glVertex3f(heh#,heh#,0.0)
     glVertex3f(heh#,heh#,-0.5)
     glVertex3f(heh#,0.0,-0.5)
     glVertex3f(heh#,0.0,0.0)
    
     glEnd()
     end sub
    
    
     sub gandeng()
     glColor3f(1,0,0)  
     glBegin(GL_QUADS)
     glVertex3f(0.0,0.5,2.0)
     glVertex3f(1.0,0.5,2.0)
     glVertex3f(1.0,0.0,2.0)
     glVertex3f(0.0,0.0,2.0)
    
     glVertex3f(0.0,0.0,-2.0)
     glVertex3f(1.0,0.0,-2.0)
     glVertex3f(1.0,0.0,2.0)
     glVertex3f(0.0,0.0,2.0)
    
    
     glVertex3f(0.0,0.5,-2.0)
     glVertex3f(1.0,0.5,-2.0)
     glVertex3f(1.0,0.0,-2.0)
     glVertex3f(0.0,0.0,-2.0)
    
     glVertex3f(0.0,0.5,2.0)
     glVertex3f(0.0,0.5,-2.0)
     glVertex3f(0.0,0.0,-2.0)
     glVertex3f(0.0,0.0,2.0)
    
     glVertex3f(1.0,0.5,2.0)
     glVertex3f(1.0,0.5,-2.0)
     glVertex3f(1.0,0.0,-2.0)
     glVertex3f(1.0,0.0,2.0)
     glEnd()
     end sub
    
     sub box()
     glBegin(GL_QUADS)
     glColor3f(1,1,1)                  
     glVertex3f(-24.0,6.0,0.0)
     glVertex3f(0.0,6.0,0.0)
     glVertex3f(0.0,0.0,0.0)
     glVertex3f(-24.0,0.0,0.0)
     
          glColor3f(1,1,1)
     glVertex3f(-24.0,0.0,-5.0)
     glVertex3f(0.0,0.0,-5.0)
     glVertex3f(0.0,0.0,0.0)
     glVertex3f(-24.0,0.0,0.0)
    
         glColor3f(1,1,1)
     glVertex3f(-24.0,6.0,-5.0)
     glVertex3f(0.0,6.0,-5.0)
     glVertex3f(0.0,0.0,-5.0 )
     glVertex3f(-24.0,0.0,-5.0)
    
        ' glColor3f(1,0,0)
     glVertex3f(-24.0,6.0,-5.0)
     glVertex3f(0.0,6.0,-5.0)
     glVertex3f(0.0,6.0,0.0 )
     glVertex3f(-24.0,6.0,0.0)
    
          glColor3f(1,0,0)
     glVertex3f(-24,0.0,-5.0)
     glVertex3f(-24,6.0,-5.0)
     glVertex3f(-24,6.0,0.0)
     glVertex3f(-24,0.0,0.0 )
    
         glColor3f(1,0,0)
     glVertex3f(0.0,0.0,-5.0)
     glVertex3f(0.0,6.0,-5.0)
     glVertex3f(0.0,6.0,0.0)
     glVertex3f(0.0,0.0,0.0)

     glEnd()

     end sub
    
     sub rangka()
     glBegin(GL_QUADS)
     glColor3f(1,1,1)  

     glVertex3f(0.0,0.5,0.0)
     glVertex3f(14.0,0.5,0.0)
     glVertex3f(14.0,0.0,0.0)
     glVertex3f(0.0,0.0,0.0)
    
     glVertex3f(0.0,0.0,-1)
     glVertex3f(14.0,0.0,-1)
     glVertex3f(14.0,0.0,0.0)   
     glVertex3f(0.0,0.0,0.0)

     glVertex3f(0.0,0.5,-1)
     glVertex3f(14.0,0.5,-1)
     glVertex3f(14.0,0.0,-1)
     glVertex3f(0.0,0.0,-1)

     glVertex3f(0.0,0.5,-1)
     glVertex3f(14.0,0.5,-1)
     glVertex3f(14.0,0.5,0.0)
     glVertex3f(0.0,0.5,0.0)

     glVertex3f(0.0,0.0,-1)
     glVertex3f(0.0,0.5,-1)
     glVertex3f(0.0,0.5,0.0)   
     glVertex3f(0.0,0.0,0.0)
    
     glVertex3f(14.0,0.5,0.0)
     glVertex3f(14.0,0.5,-1)
     glVertex3f(14.0,0.0,-1)
     glVertex3f(14.0,0.0,0.0)
                          
     glVertex3f(14.0,0.0,-0.5)                     
     glVertex3f(14.0,0.0,-0.5)                     
     glVertex3f(14.0,0.5,0.0)
     glVertex3f(14.0,0.0,0.0)
     glEnd()
     end sub

     sub ass()
     glBegin(GL_QUADS)
     glColor3f(1,1,1)  

     glVertex3f(0.0,2.0,0.0)
     glVertex3f(8.0,2.0,0.0)
     glVertex3f(8.0,0.0,0.0)
     glVertex3f(0.0,0.0,0.0)
    
    
     glVertex3f(0.0,0.0,-4.0)
     glVertex3f(8.0,0.0,-4.0)
     glVertex3f(8.0,0.0,0.0)
     glVertex3f(0.0,0.0,0.0)
    
    
     glVertex3f(0.0,2.0,-4.0)
     glVertex3f(8.0,2.0,-4.0)    
     glVertex3f(8.0,0.0,-4.0)
     glVertex3f(0.0,0.0,-4.0)
    
    
     glVertex3f(0.0,0.0,-4.0)
     glVertex3f(0.0,2.0,-4.0)
     glVertex3f(0.0,2.0,0.0)
     glVertex3f(0.0,0.0,0.0)
    
     glVertex3f(8.0,0.0,-4.0)
     glVertex3f(8.0,2.0,-4.0)
     glVertex3f(8.0,2.0,0.0)
     glVertex3f(8.0,0.0,0.0)
    
     glEnd()
     end sub
    
sub beng()                              'Bawah
        glBegin(GL_QUADS)
    glColor3f(1,0,0)         

    glVertex3f(-1.0,1.0,1.0)
    glVertex3f(1.0,1.0,1.0)
    glVertex3f(1.0,-1.0,1.0)
    glVertex3f(-1.0,-1.0,1.0)  
   
    glVertex3f(-1.0,-1.0,-1.0)
    glVertex3f(1.0,-1.0,-1.0)
    glVertex3f(1.0,-1.0,1.0)
    glVertex3f(-1.0,-1.0,1.0)
   
    glVertex3f(-1.0,1.0,-1.0)
    glVertex3f(1.0,1.0,-1.0)
    glVertex3f(1.0,-1.0,-1.0)
    glVertex3f(-1.0,-1.0,-1.0)
   
    glVertex3f(-1.0,1.0,-1.0)
    glVertex3f(1.0,1.0,-1.0)
    glVertex3f(1.0,1.0,1.0)
    glVertex3f(-1.0,1.0,1.0)

    glEnd()
    end sub

                                                 'Paling Atsa
        sub bang()
        glBegin(GL_QUADS)
       glColor3f(1,0,0)  
          
           glVertex3f(0.0,0.5,0.0)
           glVertex3f(12.0,0.5,0.0)
           glVertex3f(12.0,0.0,0.0)
           glVertex3f(0.0,0.0,0.0)
          
          ' glColor3f(1,1,1)
           glVertex3f(0.0,0.0,-2.0)
           glVertex3f(12.0,0.0,-2.0)
           glVertex3f(12.0,0.0,0.0)
           glVertex3f(0.0,0.0,0.0)
          
           'glColor3f(1,0,0)
           glVertex3f(0.0,0.5,-2.0)
           glVertex3f(12.0,0.5,-2.0)
           glVertex3f(12.0,0.0,-2.0)
           glVertex3f(0.0,0.0,-2.0)
          
          'glColor3f(1,1,1)
           glVertex3f(0.0,0.5,-2.0)
           glVertex3f(12.0,0.5,-2.0)
           glVertex3f(12.0,0.5,0.0)
           glVertex3f(0.0,0.5,0.0)
          
          ' glColor3f(1,0,0)
           glVertex3f(0.0,0.0,-2.0)
           glVertex3f(0.0,0.5,-2.0)
           glVertex3f(0.0,0.5,0.0)
           glVertex3f(0.0,0.0,0.0)
          
           glVertex3f(12.0,0.0,-2.0)
           glVertex3f(12.0,0.5,-2.0)
           glVertex3f(12.0,0.5,0.0)
           glVertex3f(12.0,0.0,0.0)

    glEnd()
    end sub
                                                'tangga
    sub bung()
        glBegin(GL_QUADS)
        glColor3f(1,1,1)  
           glVertex3f(0.0,0.5,0.0)
           glVertex3f(9.0,0.5,0.0)
           glVertex3f(9.0,0.0,0.0)
           glVertex3f(0.0,0.0,0.0)

           glVertex3f(0.0,0.0,-1.0)
           glVertex3f(9.0,0.0,-1.0)
           glVertex3f(9.0,0.0,0.0)
           glVertex3f(0.0,0.0,0.0)
          
          
           glVertex3f(0.0,0.5,-1.0)
           glVertex3f(9.0,0.5,-1.0)
           glVertex3f(9.0,0.0,-1.0)
           glVertex3f(0.0,0.0,-1.0)
          
           
           glVertex3f(0.0,0.5,-1.0)
           glVertex3f(9.0,0.5,-1.0)
           glVertex3f(9.0,0.5,0.0)
           glVertex3f(0.0,0.5,0.0)
          
          
           glVertex3f(0.0,0.0,-1.0)
           glVertex3f(0.0,0.5,-1.0)
           glVertex3f(0.0,0.5,0.0)
           glVertex3f(0.0,0.0,0.0)
          
           glVertex3f(9.0,0.0,-1.0)
           glVertex3f(9.0,0.5,-1.0)
           glVertex3f(9.0,0.5,0.0)
           glVertex3f(9.0,0.0,0.0)
          

    glEnd()
    end sub
   
                                             'Pagar
    sub bong()
        glBegin(GL_QUADS)
          glColor3f(1,1,1)
           glVertex3f(0.0,2.0,0.0)
           glVertex3f(3.0,2.0,0.0)
           glVertex3f(3.0,0.0,0.0)
           glVertex3f(0.0,0.0,0.0)
          
          
           glVertex3f(0.0,0.0,-3.0)
           glVertex3f(3.0,0.0,-3.0)
           glVertex3f(3.0,0.0,0.0)
           glVertex3f(0.0,0.0,0.0)

           glVertex3f(0.0,2.0,-3.0)
           glVertex3f(3.0,2.0,-3.0)
           glVertex3f(3.0,0.0,-3.0)
           glVertex3f(0.0,0.0,-3.0)
          
          
           glVertex3f(0.0,1.0,-3.0)
           glVertex3f(3.0,1.0,-3.0)
           glVertex3f(3.0,1.0,0.0)
           glVertex3f(0.0,1.0,0.0)
          
          
           glVertex3f(0.0,0.0,-3.0)
           glVertex3f(0.0,1.0,-3.0)
           glVertex3f(0.0,1.0,0.0)
           glVertex3f(0.0,0.0,0.0)
          
           glVertex3f(3.0,0.0,-3.0)
           glVertex3f(3.0,1.0,-3.0)
           glVertex3f(3.0,1.0,0.0)
           glVertex3f(3.0,0.0,0.0)
          

    glEnd()
    end sub
    
    dim gerak#
    dim gerak2#
    dim teta#
    dim a#
    dim b#
    dim c#
    dim d#
    dim e#
    dim f#
    dim g#
    dim i#
    dim r#
    dim v#

    
    gerak#=0
    gerak2#=0
    teta#=0
    d#=0
    e#=0
    a#=0
    b#=0
    c#=0
    f#=0
    g#=0
    i#=0
    r#=0
    v#=0
 
     while true
     glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT)
     glLoadIdentity()
    
     glPushMatrix()

     glTranslatef(gerak#,gerak2#,-30)
     'glRotatef(r#,0,1,0)
     glRotatef(0,0,0,0)
     bemper ()
    
     glTranslatef(2.0,0.0,0.0)
     glRotatef(0,0,0,1)
     pintu()
    
     glTranslatef(3.0,0.0,0.0)
     glRotatef(0,0,0,1)
     mesin1()
     glTranslatef(-4.0,-0.2,-1)
     mesin2()
             

     'Rodanya Depan
      glTranslatef(0.0,-0.5,1.2)
      roda(1.5)        
      glTranslatef(0.0,0.0,-3.9)
      roda(1.5)

      glTranslatef(6.0,0.0,3.9)
      roda(1.5)        
      glTranslatef(0.0,0.0,-3.9)
      roda(1.5)
     
      glTranslatef(2.0,0.0,3.9)
      roda(1.5)        
      glTranslatef(0.0,0.0,-3.9)
      roda(1.5)
     
  
     'Cerobong Asap
     glTranslatef(-3,3,3.8)
     glRotatef(90,0,0,1)
     cerobong ()
    
     glTranslatef(0,0,-3.5)
     glRotatef(0,0,0,1)
     cerobong ()
    

     glTranslatef(-0.4,-3.5,1.4)
     glRotatef(-90,0,0,1)
     gandeng ()
    
     glTranslatef(0.0,-0.5,0.6)
     glRotatef(r#,0,1,0)
     rangka()

     glTranslatef(13, -1.7,1.3)
     glRotatef(0,0,0,1)
     ass()
    
     glTranslatef(0.5,2,-1.9)
     glRotatef(0,0,0,0)
     gandeng ()
    
     glTranslatef(6,0,0)
     glRotatef(0,0,0,1)
     gandeng ()
    
     'Roda Belakang
    
      glTranslatef(-5.5,-2.3,2)
      roda(1.5)        
      glTranslatef(0.0,0.0,-3.9)
      roda(1.5)
     
      glTranslatef(2.0,0.0,3.9)
      roda(1.5)        
      glTranslatef(0.0,0.0,-3.9)
      roda(1.5)
     
      glTranslatef(2.0,0.0,3.9)
      roda(1.5)        
      glTranslatef(0.0,0.0,-3.9)
      roda(1.5)

   
      glTranslatef(3.8.0,2.8,4.4)
      glRotatef(i#,0,0,1)
      box()
   


      'Tangga  Penyelamat
             
      glTranslatef(-2.0,5.5,-3)
      glRotatef(v#,0,1,0)
       glRotatef(d#,1,0,0)
      
       glRotatef(90,0,0,1)

      beng()
             
     glTranslatef(0,0,0.5)
     glRotatef(0+e#,0,0,1)
     bung()
    
     'tangga1
    'glpushmatrix()
    glTranslatef(9.0,0.0,0.0)
    glRotatef(175+b#,0,0,1)
     'glColor3f(0.1,1,1)
     bung() 
   
     'glpopmatrix()
     glTranslatef(9.0,0.0,0.0)
     glRotatef(-175+a#,0,0,1)
   '  glColor3f(1,1,1)
     bung()
    
        glTranslatef(9.0,0.0,0.0)
     glRotatef(175+f#,0,0,1)
   '  glColor3f(1,1,1)
     bung() 
 
        glTranslatef(9.0,0.0,0.0)
     glRotatef(-175+a#,0,0,1)
   '  glColor3f(1,1,1)
     bung()
    
        glTranslatef(9.0,0.0,0.0)
     glRotatef(175+f#,0,0,1)
   '  glColor3f(1,1,1)
     bung()
    
        glTranslatef(9.0,0.0,0.0)
     glRotatef(-175+a#,0,0,1)
   '  glColor3f(1,1,1)
     bung()
    
        glTranslatef(9.0,0.0,0.0)
     glRotatef(175+f#,0,0,1)
   '  glColor3f(1,1,1)
     bung()
      
      glTranslatef(9.0,0.0,0.0)
     glRotatef(-175+a#,0,0,1)
   '  glColor3f(1,1,1)
     bung() 
    
    glTranslatef(9.0,0.0,0.0)
    glRotatef(175+f#,0,0,1)
     'glColor3f(0.1,1,1)
     bung() 
   
     'glpopmatrix()
     glTranslatef(9.0,0.0,0.0)
     glRotatef(-175+a#,0,0,1)
   '  glColor3f(1,1,1)
     bung()
    
        glTranslatef(9.0,0.0,0.0)
     glRotatef(175+f#,0,0,1)
   '  glColor3f(1,1,1)
     bung()
     
     
      glTranslatef(9.0,0.0,0.0)
     glRotatef(-175+a#,0,0,1)
   '  glColor3f(1,1,1)
     bung()
       
    
       glTranslatef(9.0,0.0,0.0)
        glRotatef(175+f#,0,0,1)
     bung()
           
       glTranslatef(9.0,0.0,0.5)
       glRotatef(g#,0,0,1)
        glRotatef(-85+a#,0,0,1)
     bang()
      
       glTranslatef(11.0,-1.0,0.5)
     bong()
           

      SwapBuffers()
       

      'PErgerakan Truk  Kanan Kiri dan Atas Bawah
      if KEyDown("A") then gerak# = gerak# - 0.01 endif
      if KEyDown("D") then gerak# = gerak# + 0.01 endif
      if KEyDown("W") then gerak2# = gerak2# + 0.01 endif
      if KEyDown("S") then gerak2# = gerak2# - 0.01 endif
       

      'Pergerakan Box Container Bagian Belakang Atas dan BAwah
      if KEyDown("U") then i# = i# - 0.02 endif
      if KEyDown("Y") then i# = i# + 0.02endif
       

      'Pergerakan Rangka Belok Kanan Dan Kiri
      if KEyDown("R") then r# = r# - 0.1 endif
      if KEyDown("T") then r# = r# + 0.1 endif
       

      'Tangga Penyelamat
    
     'Pergerakan Tangga Miring
     if KeyDown("F") then v# = v# - 0.03 endif
     if KeyDown("G") then v# = v# + 0.03 endif     
    
     'Peregerakan Ujung Tangga Atas Bawah
     if KeyDown("P") then g# = g# - 0.03 endif
     if KeyDown("O") then g# = g# + 0.03 endif
     
     'Pergerakan Tangga Memanjang dan Memendek
     if KeyDown("M") then f# = f# + 0.02 endif
     if KeyDown("N") then f# = f# - 0.02 endif
     if KeyDown("M") then a# = a# - 0.02 endif      
     if KeyDown("N") then a# = a# + 0.02 endif
     if KeyDown("M") then b# = b# + 0.01 endif
     if KeyDown("N") then b# = b# - 0.01 endif
    
     'Pergerakan Tangga Ke kanan dan Ke Kiri
     if KeyDown("K") then d# = d# - 0.1 endif
     if KeyDown("J") then d# = d# + 0.1 endif
    
     'Pergerakan Tangga Atas dan Bawah
     if KeyDown("H") then e# = e# - 0.01 endif
     if KeyDown("B") then e# = e# + 0.01 endif
      wend

Senin, 09 Juli 2012

Program Java Bikin Garis_Bresenham


import java.awt.*;
import javax.swing.*;

public class Garis_Bresenham extends JPanel{
    int x0,y0,x1,y1;
   
    public void garismu(int x0, int y0, int x1, int y1,Graphics g) {
       
        int x,y,xend;
        this.x0=x0;
        this.y0=y0;
        this.x1=x1;
        this.y1=y1;
       
        int dx = Math.abs(x1-x0);
        int dy = Math.abs(y1-y0);
        int p = 2*dy-dx;    
        int duady = 2*dy;
        int duadydx = 2*(dy-dx);
       
        if (x0>x1) {
            x = x1;
            y = y1;
            xend = x0;
        } else {
            x = x0;
            y = y0;
            xend = x1;
        }
       
      
        g.drawRect(x, y, 1, 1);
        while(x<xend) {
            x++;
           
    if(p<0) {
             p+=duady;
            }
   
    else {
       
    if (y0>y1) {
        y--; } else y++;
        p+=duadydx;
       
        }


            g.drawRect(x, y, 1, 1);
           
    try{
    Thread.sleep(2);  
    }catch (InterruptedException ie){
    System.out.println(ie.getMessage());
    }
        }
    }

    public void paint(Graphics g){
    garismu(1,1,700,700,g );
    }
  
    public static void main(String[] args) {
        // TODO code application logic here
        JFrame frame = new JFrame("algoritma garis DDA");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Garis_Bresenham grs = new Garis_Bresenham ();
        grs.setBackground(Color.WHITE);
        frame.add(grs);
        frame.setSize(800,600);
        frame.setVisible(true);
       
    }
}

Program Java UTS Bikin Gambar Gelas Animasi Delay

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


import java.awt.*;
import java.awt.event.*;
import java.util.*;
/**
 *
 * @author Rizky Hw
 */
public class Gelas extends Frame {

    public static void main(String[] args){new Gelas();
    }

   Gelas()
   {  super("Gambar Gelass");
      addWindowListener(new WindowAdapter()
       {public void windowClosing(WindowEvent e){System.exit(0);}});
      setSize(290, 390);
      add("Center", new Cvlingkaran());
      show();
   }
}


// Bikin Lingkaran
class Cvlingkaran extends Canvas
{  float rWidth = 10.0F, rHeight = 7.5F, pixelSize;
   int centerX, centerY, dGrid = 10, maxX, maxY;

   void initgr()
   {  Dimension d;
      d = getSize();
      maxX = d.width - 1;
      maxY = d.height - 1;
      pixelSize = Math.max(rWidth/maxX, rHeight/maxY);
      centerX = maxX/2; centerY = maxY/2;
   }

   //int iX(float x){return Math.round(centerX + x/pixelSize);}
   //int iY(float y){return Math.round(centerY - y/pixelSize);}

   void putPixel(Graphics g, int x, int y)
   {  int x1 = x * dGrid, y1 = y * dGrid, h = dGrid/2;
      // g.drawOval(x ,y, 3, 3);
      g.drawString(".",x , y);
   }

  
   // Bikin Garis
   void garis(Graphics g, int xP, int yP, int xQ, int yQ)
   {  int x = xP, y = yP, D = 0, HX = xQ - xP, HY = yQ - yP, c, M, xInc = 1, yInc = 1;
      if (HX < 0){
          xInc = -1; HX = -HX;}
      if (HY < 0){
          yInc = -1; HY = -HY;}
      if (HY <= HX)
      {  c = 2 * HX;
         M = 2 * HY;
         for (;;)
         {  putPixel(g, x, y);
            if (x == xQ) break;
            x += xInc;
            D += M;
            if (D > HX){y += yInc; D= c;}
            try{
              Thread.sleep(10);  
            }catch (InterruptedException ie){
              System.out.println(ie.getMessage());
            }
         }
      }
      else
      {  c = 2 * HY; M = 2 * HX;
         for (;;)
         {  putPixel(g, x, y);
            if (y == yQ) break;
            y += yInc;
            D += M;
            if (D > HY){x += xInc; D -= c;}
            try{
              Thread.sleep(10);  
            }catch (InterruptedException ie){
              System.out.println(ie.getMessage());
            }
         }
      }
   }
 
  // Void Lingkaran
 void lingkaran(Graphics g, int xC, int yC, int r, String pos)
   {  int x = 0, y = r, u = 1, v = 2 * r - 1, E = 0;
      while (x < y){ 
        if(!pos.equals("top") || pos.equals("all")){
            putPixel(g, xC + x, yC + y); // NNE
        }
        if(pos.equals("all")){
            putPixel(g, xC + y, yC - x); // ESE
        }
        if(pos.equals("top") || pos.equals("all")){
            putPixel(g, xC - x, yC - y); // SSW
        }
        if(pos.equals("all")){
            putPixel(g, xC - y, yC + x); // WNW
        }
         x++; E += u; u += 2;
         if (v < 2 * E){y--; E -= v; v -= 2;}
         if (x > y) break;
        if(pos.equals("all")){
            putPixel(g, xC + y, yC + x); // ENE
        }
        if(pos.equals("top") || pos.equals("all")){
            putPixel(g, xC + x, yC - y); // SSE
        }
        if(pos.equals("all")){
            putPixel(g, xC - y, yC - x); // WSW
        }
        if(!pos.equals("top") || pos.equals("all")){
            putPixel(g, xC - x, yC + y); // NNW
        }
       
            try{
              Thread.sleep(10);  
            }catch (InterruptedException ie){
              System.out.println(ie.getMessage());
            }
      }
   }
  
  
  /* void showGrid(Graphics g)
   {  for (int x=dGrid; x<=maxX; x+=dGrid)
         for (int y=dGrid; y<=maxY; y+=dGrid)
            g.drawLine(x, y, x, y);
   }*/

  
   //Void Inputan titik point
   public void paint(Graphics g)
   {
       initgr();
     // showGrid(g);
      g.setColor(Color.black);
      
    //elips
       lingkaran(g, 135, 120,78,"top");     
       lingkaran(g, 135, 13,78,"bottom");
       lingkaran(g, 135, 160,50,"bottom");
      
   
    // garis gelas 
    garis(g, 170, 195, 190,65);
        garis(g, 100, 195, 80,65);
   
    //kotakan  
    garis(g, 65, 140, 20,250);
          garis(g, 245, 140, 210,250);
          garis(g, 245, 140, 179,140);
    garis(g, 65, 140, 90,140);
    garis(g, 20, 250, 210, 250);
      
       garis(g, 20, 250, 20, 290 );
       garis(g, 20, 290, 210 ,290);
       garis(g, 210, 250, 210,290);
      
       garis(g, 245, 140, 245, 170);
       garis(g, 210, 290, 245,170);
      
    //lingkaran
      lingkaran(g, 135, 140,32,"all");     
      g.setColor(Color.red);
        
      g.drawString("Gelass", 115, 143 );
    

   }

}

Program Bikin Java Lingkaran Animasi

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


import java.awt.*;
import java.awt.event.*;
import java.util.*;
/**
 *
 * @author Rizky Hw
 */
public class Lingkaran extends Frame {

    public static void main(String[] args){new Lingkaran();
    }

   Lingkaran()
   {  super("Gambar Lingkarans");
      addWindowListener(new WindowAdapter()
       {public void windowClosing(WindowEvent e){System.exit(0);}});
      setSize(600, 400);
      add("Center", new Cvlingkaran());
      show();
   }
}

// Bikin Lingkaran
class Cvlingkaran extends Canvas
{  float rWidth = 10.0F, rHeight = 7.5F, pixelSize;
   int centerX, centerY, dGrid = 10, maxX, maxY;

   void initgr()
   {  Dimension d;
      d = getSize();
      maxX = d.width - 1;
      maxY = d.height - 1;
      pixelSize = Math.max(rWidth/maxX, rHeight/maxY);
      centerX = maxX/2; centerY = maxY/2;
   }

   void putPixel(Graphics g, int x, int y)
   {  int x1 = x * dGrid, y1 = y * dGrid, h = dGrid/2;
      g.drawString(".",x , y);
   }

  
  
 
  // Void Lingkaran
 void lingkaran(Graphics g, int xC, int yC, int r, String pos)
   {  int x = 0, y = r, u = 1, v = 2 * r - 1, E = 0;
      while (x < y){ 
        if(!pos.equals("top") || pos.equals("all")){
            putPixel(g, xC + x, yC + y); // NNE
        }
        if(pos.equals("all")){
            putPixel(g, xC + y, yC - x); // ESE
        }
        if(pos.equals("top") || pos.equals("all")){
            putPixel(g, xC - x, yC - y); // SSW
        }
        if(pos.equals("all")){
            putPixel(g, xC - y, yC + x); // WNW
        }
         x++; E += u; u += 2;
         if (v < 2 * E){y--; E -= v; v -= 2;}
         if (x > y) break;
        if(pos.equals("all")){
            putPixel(g, xC + y, yC + x); // ENE
        }
        if(pos.equals("top") || pos.equals("all")){
            putPixel(g, xC + x, yC - y); // SSE
        }
        if(pos.equals("all")){
            putPixel(g, xC - y, yC - x); // WSW
        }
        if(!pos.equals("top") || pos.equals("all")){
            putPixel(g, xC - x, yC + y); // NNW
        }
       
            try{
              Thread.sleep(50);  
            }catch (InterruptedException ie){
              System.out.println(ie.getMessage());
            }
      }
   }
  
  
  /* void showGrid(Graphics g)
   {  for (int x=dGrid; x<=maxX; x+=dGrid)
         for (int y=dGrid; y<=maxY; y+=dGrid)
            g.drawLine(x, y, x, y);
   }*/

  
   //Void Inputan titik point
   public void paint(Graphics g)
   {
       initgr();
      g.setColor(Color.black);
      lingkaran(g, 300, 170,80,"all");          

   }

}

Program Java Bikin Garis Animasi Euyy

import javax.swing.*;
import java.awt.*;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
import javax.swing.JFrame;

class kanvas extends Canvas{

   

    int x0, y0, x1, y1;
    int dx,dy,steps;
    int xInc,yInc,x,y;

    void input(int x00, int y00, int x11, int y11, Graphics g){

        x0 = x00;
                y0 = y00;
                x1 = x11;
                y1 = y11;
               
        dx = x1 - x0;

        dy = y1 - y0;

       
        if (Math.abs(dx) > Math.abs(dy)){
            steps = Math.abs(dx);
        }
        else{
            steps = Math.abs(dy);
           
        }

       
        xInc = dx / steps;
        yInc = dy / steps;
       
        x = x0;
        y = y0;

        g.drawString(".",Math.round(x), Math.round(y));
       
        for (int i = 0; i< steps ;i++){
            x += xInc;
            y += yInc;
            g.drawString(".",Math.round(x), Math.round(y));

            try{
              Thread.sleep(20);  
            }catch (InterruptedException ie){
              System.out.println(ie.getMessage());
            }
           
        }
    }

public void paint(Graphics g) {
        input(10,10,400,400,g);
    }

}

class Garis extends JFrame{
    kanvas gambar = new kanvas();
    Garis(){
        super("Garis");
        setLocation(400,250);
        setSize(700,500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    void komponen(){
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(gambar,BorderLayout.CENTER);
        setVisible(true);
    }
    public static void main(String [] args){
        Garis r = new Garis();
        r.komponen();
    }
}

Selasa, 03 Juli 2012

Basic4GL Bikin 3 Kotak dan Rotasi Bergerak











        sub kotak()
         glBegin(GL_QUADS)                            ' Draw A Quad
            glVertex3f( 0.0, 0.0, 0.0)                    ' Top Left
            glVertex3f( 0.0, 2.0, 0.0)                    ' Top Right
            glVertex3f( 14.0, 2.0, 0.0)                    ' Bottom Right
            glVertex3f( 14.0, 0.0, 0.0)                    ' Bottom Left
        glEnd()                                    ' Done Drawing The Quad
     
        end sub
     
           sub kotak1()
         glBegin(GL_QUADS)                            ' Draw A Quad
            glVertex3f( 0.0, 0.0, 0.0)                    ' Top Left
            glVertex3f( 0.0, 2.0, 0.0)                    ' Top Right
            glVertex3f( 6.0, 2.0, 0.0)                    ' Bottom Right
            glVertex3f( 6.0, 0.0, 0.0)                   ' Bottom Left
        glEnd()                                    ' Done Drawing The Quad
     
        end sub
         sub kotak2()
         glBegin(GL_QUADS)                            ' Draw A Quad
            glVertex3f( 0.0, 0.0, 0.0)                    ' Top Left
            glVertex3f( 0.0, 2.0, 0.0)                    ' Top Right
            glVertex3f( 16.0, 2.0, 0.0)                    ' Bottom Right
            glVertex3f( 16.0, 0.0, 0.0)                   ' Bottom Left
        glEnd()                                    ' Done Drawing The Quad
     
        end sub
        dim alpa#
        dim beta#
        dim teta#
     
        alpa# = 45
        beta#=-90
        teta#=90
        while true
     

 
        glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT)    ' Clear The Screen And The Depth Buffer
        glLoadIdentity()                            ' Reset The View
        glTranslatef(0.0,0.0,-40.0)                    ' Move Left 1.5 Units And Into The Screen 6.0
        glRotatef (alpa#,0,0,1)
        kotak()
     
        glPopMatrix()
        glTranslatef(14.0,2.0,0.0)
        glRotatef (beta#,0,0,1)
        kotak1()
     
        glPopMatrix()
        glTranslatef(6.0,2.0, 0.0)
        glRotatef (teta#,0,0,1)
        kotak2()
        SwapBuffers ()
       
        if KeyDown("Q") then alpa#=alpa# - 1 endif
        if KeyDown("A") then alpa#=alpa# + 1 endif
        if KeyDown("W") then beta#=beta# + 1 endif
        if KeyDown("S") then beta#=beta# - 1 endif
        if KeyDown("E") then teta#=teta# + 1 endif
        if KeyDown("D") then teta#=teta# - 9999 endif
        wend

Basic4GL Bikin Garis


    sub garisBuk(x0#,y0#,x1#,y1#)
    glBegin (GL_LINES)
    glvertex2f(x0#,y0#)
    glvertex2f(x1#,y1#)
    glEnd()
    end sub
 

 
    glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT)    ' Clear The Screen And The Depth Buffer
    glLoadIdentity()                            ' Resewtw The View
 
    glTranslatef(0.0, 0.0, -25.0)                    ' Move Left 1.5 Units And Into The Screen 6.0
    glRotatef(40, 0, 0, 1)  
    garisBuk(0, 0, 10, 0)

    glTranslatef(10.0, 0.0, 0.0)  
    glRotatef(-120, 0, 0, 1)  
    garisBuk(0, 0, 3, 0)
 
   glTranslatef(3.0, 0.0, 0.0)  
    glRotatef(120, 0, 0, 1)  
    garisBuk(0, 0, 10, 0)
 



 

    SwapBuffers ()

Basic4Gl Bikin Rotasi Tata Surya Matahari, Bumi, Bulan, Mars dan Asteroid





sub kubudku(l1#)
              glBegin(GL_QUADS)                            ' Draw A Quad
              glColor3f(1,1,0.1)
            ' kotak depan
            glVertex3f(0.0, 0.0, 0.0)                    ' Top Left
            glVertex3f(l1#, 0.0, 0.0)                    ' Top Left
            glVertex3f(l1#, l1#, 0.0)                    ' Top Left
            glVertex3f(0.0, l1#, 0.0)                    ' Top Left

            glColor3f(0.1,1,1)      ' kotak bawah
            glVertex3f(0.0, 0.0, 0.0)                    ' Top Left
            glVertex3f(l1#, 0.0, 0.0)                    ' Top Left
            glVertex3f(l1#, 0.0, -l1#)                    ' Top Left
            glVertex3f(0.0, 0.0, -l1#)                    ' Top Left

               glColor3f(1,1,1)      ' kotak bawah
            glVertex3f(l1#, 0.0, -l1#)                    ' Top Left
            glVertex3f(0.0, 0.0, -l1#)                    ' Top Left
            glVertex3f(0.0, l1#, -l1#)                    ' Top Left
            glVertex3f(l1#, l1#, -l1#)                    ' Top Left
            
            glColor3f(1,0.1,1)      ' kotak bawah
             glVertex3f(l1#, l1#, 0.0)                    ' Top Left
            glVertex3f(0.0, l1#, 0.0)                    ' Top Left
       glVertex3f(0.0, l1#, -l1#)                    ' Top Left
            glVertex3f(l1#, l1#, -l1#)                    ' Top Left
      
      
            glVertex3f(0.0, 0.0, 0.0)                    ' Top Left
            glVertex3f(0.0, l1#, 0.0)                    ' Top Left
       glVertex3f(0.0, l1#, -l1#)                    ' Top Left
            glVertex3f(0.0, 0.0, -l1#)                    ' Top Left
     
            glVertex3f(l1#, 0.0, 0.0)                    ' Top Left
            glVertex3f(l1#, l1#, 0.0)                    ' Top Left
            glVertex3f(l1#, l1#, -l1#)                    ' Top Left
            glVertex3f(l1#, 0.0, -l1#)                    ' Top Left

      glend()
 end sub
    
    
    dim rtri#                                        ' Angle For The Triangle ( NEW )
    dim rquad#
    dim pro#
    dim fix#
    dim life#
    dim klop#
    dim top# 
    dim iop#

    iop#=0
    top#=0
    klop#=0
    life#=0
    fix#=0
    pro#=0
    rtri#= 0
    rquad#= 0
                                       ' Angle For The Quad     ( NEW )
    while true
        glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT)    ' Clear The Screen And The Depth Buffer
        glLoadIdentity()                            ' Reset The View
        
        glPushMatrix()
        glTranslatef(0.0, 0.0, -100.0)
        glRotatef(-45, 60, -10, 1)
        rquad#=rquad#+0.1
        glRotatef(rquad#,0,0,1) 
        
        kubudku(5)
        
        iop# = iop# =0.01
        pro# = pro# + 0.2  
        glRotatef(iop#,0,0, 1)
        glTranslatef(30.0, 15.0,0.0)
        glRotatef(pro#,0,0, 1)
        kubudku(3)                 ' Move right 1.5 units and into the screen 6.0
        
        
        
        top#= top# - 0.6
        glRotatef(top#,0,0, 1)
        glTranslatef(8.0,6.0,0.0) 
        glRotatef(top#,0,0, 1)
        kubudku(2)
        
           ' glPopMatrix()
                 

                                        
     'glPopMatrix ()  
               rtri# = rtri# + 0.2  
     glRotatef(rtri#,0,-50,1) 
      glTranslatef(2.0, 0.0,-500.0)
     
      kubudku(4)
                    
          
                 glPopMatrix ()
                    
                    klop#= klop# - 0.1
                    life#= life# + 1
                    glRotatef(klop#, 0,0,1)
                    glTranslatef(25, 0, -45)
                   ' glRotatef(60,44,0,1)
                    glRotatef(life#,90,0,1)
                    kubudku(2)    

                          fix#=fix#+1
                   glRotatef(fix#,0,0,2)
                   glTranslatef(30,0,-500)
                   'glRotatef(-45,60,10,0) 
                  ' glRotatef(fix#, 0,0, 1)
                   
                   kubudku(3)    
                   
                
     
     
        SwapBuffers ()      
       
    wend