Belajar Program Basic4GL
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 );
}
}
* 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");
}
}
* 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();
}
}
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 ()
Langganan:
Postingan (Atom)