Tampilkan postingan dengan label Program Open Gl. Tampilkan semua postingan
Tampilkan postingan dengan label Program Open Gl. Tampilkan semua postingan

Selasa, 22 Januari 2013

Program OpenGl Piramida dengan 3 segitiga

1 komentar
Mungkin kita tahu tentang piramida itu terdiri dari 4 segitiga tapi saya akan membuat dengan 3 segitiga.Walapun hasil yang kurang memuaskan tapi lumayan ga jelek-jelek bangat si..heeee



dim angle#
dim tex1,tex2,tex3,tex4

    tex1 = LoadMipmapTexture ("1.jpg") 'untuk mengambil foto biar segitiga da gambarnya
    tex2 = LoadMipmapTexture ("2.jpg")
    tex3 = LoadMipmapTexture ("3.jpg")

 'glactivetexture(gl_texture0)
    glEnable (GL_TEXTURE_2D)    
    'Turn lighting on with this command:
    glEnable(GL_LIGHTING)

    'Turn on Light #0 with this command
    glEnable(GL_LIGHT0)

    'Set position of Light #0 with this command
    glLightfv(GL_LIGHT0, GL_POSITION, Vec3(0, 0, 1))

    'Set the ambience of the light with this
    glLightfv(GL_LIGHT0, GL_AMBIENT, vec4(.2,.2,.2,1))

    'Set the diffuse of the light with this
    glLightfv(GL_LIGHT0, GL_DIFFUSE, vec4(1, 1, 1, 1))
    glbindtexture(gl_texture_2d, tex1)
    'glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE)
    'glactivetexture(gl_texture1)
    'glEnable (GL_TEXTURE_2D)
    'glbindtexture(gl_texture_2d, tex2)
    'glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE)
    'glactivetexture(gl_texture2)
    'glEnable (GL_TEXTURE_2D)
    'glbindtexture(gl_texture_2d, tex3)
    'glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE)
    'glactivetexture(gl_texture3)
    'glEnable (GL_TEXTURE_2D)
while true
    glClear (GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT)
    glLoadIdentity ()
    glTranslatef (0, 0, -4) 'ukuran besar kecilnya segitiga
    glRotatef (angle#, 0, 1, 0) 'mengatur gerakan dari segitiga
     glBindTexture(GL_TEXTURE_2D, tex1)          'segitiga depan      
            glBegin(GL_QUADS)
            ' Front face
            glTexCoord2f(0.0, 0.0): glVertex3f ( 0, 1, 0)
            glTexCoord2f(3.0, 0.0): glVertex3f (1, -1, -1)
            glTexCoord2f(1.0, 1.0): glVertex3f ( -1,-1, -1)
glTexCoord2f(0.0, 1.0): glVertex3f ( 0, 1, 0)
glend()
       glBindTexture(GL_TEXTURE_2D, tex2)                  'segitiga kanan
            glBegin(GL_QUADS)
            ' Front face
            glTexCoord2f(1.0, 0.0): glVertex3f ( 0, 1, 0)
            glTexCoord2f(1.0, 1.0): glVertex3f (0, -1, 1)
            glTexCoord2f(0.0, 1.0): glVertex3f (1, -1, -1)
glTexCoord2f(0.0, 0.0): glVertex3f ( 0, 1, 0)
glend()
       glBindTexture(GL_TEXTURE_2D, tex3)                  'segitiga kiri
            glBegin(GL_QUADS)
            ' Front face
             glTexCoord2f(0.0, 1.0): glVertex3f ( 0, 1, 0)
              glTexCoord2f(0.0, 0.0): glVertex3f ( -1,-1, -1)
             glTexCoord2f(1.0, 0.0): glVertex3f (0, -1, 1)
glTexCoord2f(1.0, 1.0): glVertex3f ( 0, 1, 0)
glend()    
    SwapBuffers ()
    angle# = angle# + -0.8 'kecepatan dari rotasi yang di hasilkan
wend
newer post

Program bola dengan Basic 4gl

5 komentar
Mungkin kita sudah lupa atau bahkan ga tau akan rumus dengan membuat bola itu sendiri.....heee
tapi tenang,,,,di sini saya akan menjelaskan tentang,rumus bola itu sendiri.

Luas permukaan

[sunting]Volume

tapi di dalam program Basic Open 4gl untuk membuat bola,kita harus menentukan titik koordinat dari bola tersebut karena bola itu sendiri terdapat 4 titik dan setiap titik mempunyai sudut yang kita kenal dengan sin dan cos.
untuk programnya sendiri bisa di liat di bawah sini.


  dim x1#(1),y1#,z1#(1),x2#(1),y2#,z2#(1)
  dim tex1,tex2,tex3,tex4
  dim angle#
    dim sd#(3)
    dim i#,j#      
    dim n#,n2#   
    dim xx#(1),yy#(1)
    dim texture(3)  
    dim r#,rk#(1)       
    dim rkk#(1)
dim phi#
phi#=3.14

 gosub main
Bola: 
  n# = 30          
    n2#=n#/2    
    glBegin(GL_quads)
     for i#=0 to n#-1
      for j# = 0 to n#-1   

         rk#(0)=r#*Cos(-(PHI#/2)+i#/n2#*PHI#/2)
         rk#(1)=r#*Cos(-(PHI#/2)+(i#+1)/n2#*PHI#/2)

         y1#= r#*sin(-(PHI#/2)+i#/n2#*PHI#/2)
         y2#= r#*sin(-(PHI#/2)+(i#+1)/n2#*PHI#/2)

         x1#(0)= rk#(0)*sin(j#/n2#*PHI#)          'theta/(2*phi)
         x1#(1)= rk#(0)*sin((j#+1)/n2#*PHI#)          'theta/(2*phi)
         x2#(0)= rk#(1)*sin(j#/n2#*PHI#)          'theta/(2*phi)
         x2#(1)= rk#(1)*sin((j#+1)/n2#*PHI#)          'theta/(2*phi)
         z1#(0)= rk#(0)*cos(j#/n2#*PHI#)          'theta/(2*phi)
         z1#(1)= rk#(0)*cos((j#+1)/n2#*PHI#)          'theta/(2*phi)
         z2#(0)= rk#(1)*cos(j#/n2#*PHI#)          'theta/(2*phi)
         z2#(1)= rk#(1)*cos((j#+1)/n2#*PHI#)          'theta/(2*phi)

       
         glTexCoord2f(xx#(0), yy#(0))              'koordinat penempatan tekstur bola(x,y)
         glVertex3f( x1#(0), y1#,z1#(0))          'p(0,y)=(rsin0,y,rcos0)          
         glTexCoord2f(xx#(1), yy#(0))              'koordinat penempatan tekstur(x,y)
         glVertex3f(x1#(1),y1#,z1#(1))                    
         glTexCoord2f(xx#(1), yy#(1))              'koordinat penempatan tekstur(x,y)
         glVertex3f( x2#(1), y2#,z2#(1))                    
         glTexCoord2f(xx#(0), yy#(1))              'koordinat penempatan tekstur(x,y)
         glVertex3f(x2#(0),y2#,z2#(0))                    
      next  
     next
    glEnd()
    Return
main:

    
    texture(0)= loadtexture("sun.jpg")
    glEnable (GL_TEXTURE_2D)
   
  
    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,-3)           
        glrotatef(sd#(0),0,10,0)        
      glRotatef (angle#, 0, 1, 0)
 
 r#=.5                                        'Setting bolA
        glBindTexture(GL_TEXTURE_2D, texture(0))          
        gosub bola  
 
        glpushmatrix()                                'orbit
       

 
        
        sd#(0)=Sd#(0)+1                    
        sd#(1)=Sd#(1)+5   
        sd#(2)=Sd#(2)+10    
        sd#(3)=sd#(3)+15

        SwapBuffers ()
angle# = angle# + 0.1
    wend 






"SELAMAT MENCOBA"
newer post
older post Home