
=============================SRICP FORM =======================
==============================================================
Sub Inisialisasi_Awal()
'========== Inisialisasi ==========
EnableOpenGL Me.hDC
hrc = wglCreateContext(hDC)
wglMakeCurrent hDC, hrc
'Inisilisasi Koordinat Bidang Dimensi-2
xmin = -20: ymin = -20
xmax = 20: ymax = 20
zmin = 20: zmax = -20
glOrtho xmin, xmax, ymin, ymax, zmin, zmax
glClearColor 2.5, 0.5, 2.5, 0
glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT
glClear clrColorBufferBit
glMatrixMode GL_PROJECTION
glLoadIdentity
End Sub
Sub Bersihkan_Layar()
glClearColor 0.6, 0.6, 0.6, 0
glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT
End Sub
Sub Tampilkan_Gambar()
'Menampilkan Hasil
glFlush
SwapBuffers Me.hDC
End Sub
'=====Sisi Depan ====='
'======================='
Sub Membuat_Titik()
'titik 1 bagian depan
With Objek.Sisi_Depan(1)
.x = 0
.y = 0
.z = 0
End With
'titik 2 bagian depan
With Objek.Sisi_Depan(2)
.x = 5
.y = 0
.z = 0
End With
'titik 3 bagian depan
With Objek.Sisi_Depan(3)
.x = 5
.y = 5
.z = 0
End With
'titik 4 bagian depan
With Objek.Sisi_Depan(4)
.x = 0
.y = 5
.z = 0
End With
'======================================'
'=====Sisi Kanan ======'
'======================================'
'titik 1 bagian Kanan
With Objek.Sisi_Kanan(1)
.x = 5
.y = 0
.z = 0
End With
'titik 2 bagian depan
With Objek.Sisi_Kanan(2)
.x = 5
.y = 0
.z = 5
End With
'titik 3 bagian depan
With Objek.Sisi_Kanan(3)
.x = 5
.y = 5
.z = 5
End With
'titik 4 bagian depan
With Objek.Sisi_Kanan(4)
.x = 5
.y = 5
.z = 0
End With
'======================================'
'=====Sisi Kiri ======'
'======================================'
'titik 1 bagian depan
With Objek.Sisi_Kiri(1)
.x = 0
.y = 0
.z = 5
End With
'titik 2 bagian depan
With Objek.Sisi_Kiri(2)
.x = 0
.y = 0
.z = 0
End With
'titik 3 bagian depan
With Objek.Sisi_Kiri(3)
.x = 0
.y = 5
.z = 0
End With
'titik 4 bagian depan
With Objek.Sisi_Kiri(4)
.x = 0
.y = 5
.z = 5
End With
'======================================'
'=====Sisi Belakang ======'
'======================================'
'titik 1 bagian depan
With Objek.Sisi_Belakang(1)
.x = 5
.y = 0
.z = 5
End With
'titik 2 bagian depan
With Objek.Sisi_Belakang(2)
.x = 0
.y = 0
.z = 5
End With
'titik 3 bagian depan
With Objek.Sisi_Belakang(3)
.x = 0
.y = 5
.z = 5
End With
'titik 4 bagian depan
With Objek.Sisi_Belakang(4)
.x = 5
.y = 5
.z = 5
End With
'======================================'
'=====Sisi Atas ======'
'======================================'
'titik 1 bagian depan
With Objek.Sisi_Atas(1)
.x = 0
.y = 5
.z = 0
End With
'titik 2 bagian depan
With Objek.Sisi_Atas(2)
.x = 5
.y = 5
.z = 0
End With
'titik 3 bagian depan
With Objek.Sisi_Atas(3)
.x = 5
.y = 5
.z = 5
End With
'titik 4 bagian depan
With Objek.Sisi_Atas(4)
.x = 0
.y = 5
.z = 5
End With
'======================================'
'=====Sisi Bawah ======'
'======================================'
'titik 1 bagian depan
With Objek.Sisi_Bawah(1)
.x = 0
.y = 0
.z = 0
End With
'titik 2 bagian depan
With Objek.Sisi_Bawah(2)
.x = 5
.y = 0
.z = 0
End With
'titik 3 bagian depan
With Objek.Sisi_Bawah(3)
.x = 5
.y = 0
.z = 5
End With
'titik 4 bagian depan
With Objek.Sisi_Bawah(4)
.x = 0
.y = 0
.z = 5
End With
'=========================================================='
'================PRISMA ATAS================================='
'==========================================================='
'===================pRISMA depan ==============='
'titik 1 bagian depan
With Objek.Sisi_Primas_Depan(1)
.x = 0
.y = 5
.z = 0
End With
'titik 2 bagian depan
With Objek.Sisi_Primas_Depan(2)
.x = 5
.y = 5
.z = 0
End With
'titik 3 bagian depan
With Objek.Sisi_Primas_Depan(3)
.x = 2.5
.y = 10
.z = 2.5
End With
'===================pRISMA kanan ==============='
'titik 1 bagian depan
With Objek.Sisi_Primas_Kanan(1)
.x = 5
.y = 5
.z = 0
End With
'titik 2 bagian depan
With Objek.Sisi_Primas_Kanan(2)
.x = 5
.y = 5
.z = 5
End With
'titik 3 bagian depan
With Objek.Sisi_Primas_Kanan(3)
.x = 2.5
.y = 10
.z = 2.5
End With
'===================pRISMA kiri ==============='
'titik 1 bagian depan
With Objek.Sisi_Primas_Kiri(1)
.x = 0
.y = 5
.z = 0
End With
'titik 2 bagian depan
With Objek.Sisi_Primas_Kiri(2)
.x = 0
.y = 5
.z = 5
End With
'titik 3 bagian depan
With Objek.Sisi_Primas_Kiri(3)
.x = 2.5
.y = 10
.z = 2.5
End With
'===================pRISMA BELAKANG==============='
'titik 1 bagian depan
With Objek.Sisi_Primas_Belakang(1)
.x = 0
.y = 5
.z = 5
End With
'titik 2 bagian depan
With Objek.Sisi_Primas_Belakang(2)
.x = 5
.y = 5
.z = 5
End With
'titik 3 bagian depan
With Objek.Sisi_Primas_Belakang(3)
.x = 2.5
.y = 10
.z = 2.5
End With
'====================================='
'===========PRISMA BAWAH ====================='
'======================================'
'===================pRISMA bawah kanan==============='
'titik 1 bagian depan
With Objek.Sisi_Primas_Bawah_kanan(1)
.x = 0
.y = 0
.z = 0
End With
'titik 2 bagian depan
With Objek.Sisi_Primas_Bawah_kanan(2)
.x = 0
.y = 0
.z = 5
End With
'titik 3 bagian depan
With Objek.Sisi_Primas_Bawah_kanan(3)
.x = 2.5
.y = -10
.z = 2.5
End With
'==================pRISMA bawah depan ==============='
'titik 1 bagian depan
With Objek.Sisi_Primas_Bawah_Depan(1)
.x = 0
.y = 0
.z = 5
End With
'titik 2 bagian depan
With Objek.Sisi_Primas_Bawah_Depan(2)
.x = 5
.y = 0
.z = 5
End With
'titik 3 bagian depan
With Objek.Sisi_Primas_Bawah_Depan(3)
.x = 2.5
.y = -10
.z = 2.5
End With
'===================pRISMA bawah belakang==============='
'titik 1 bagian depan
With Objek.Sisi_Primas_bawah_Belakang(1)
.x = 0
.y = 0
.z = 0
End With
'titik 2 bagian depan
With Objek.Sisi_Primas_bawah_Belakang(2)
.x = 5
.y = 0
.z = 0
End With
'titik 3 bagian depan
With Objek.Sisi_Primas_bawah_Belakang(3)
.x = 2.5
.y = -10
.z = 2.5
End With
'===================pRISMA bawah kiri==============='
'titik 1 bagian depan
With Objek.Sisi_Primas_bawah_kiri(1)
.x = 5
.y = 0
.z = 5
End With
'titik 2 bagian depan
With Objek.Sisi_Primas_bawah_kiri(2)
.x = 5
.y = 0
.z = 0
End With
'titik 3 bagian depan
With Objek.Sisi_Primas_bawah_kiri(3)
.x = 2.5
.y = -10
.z = 2.5
End With
End Sub
Private Sub Command1_Click()
Call Membuat_Titik
Call Inisialisasi_Awal
glRotatef -45, 0, 1, 1
'================kiri============================'
glColor3f 1, 1, 0.4
glBegin bmPolygon
For ttk = 1 To 4
With Objek.Sisi_Kiri(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'===============atas============================'
glColor3f 1, 1, 1
glBegin bmPolygon
For ttk = 1 To 4
With Objek.Sisi_Atas(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'===============bawah============================'
glColor3f 1, 0, 1
glBegin bmPolygon
For ttk = 1 To 4
With Objek.Sisi_Bawah(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'==============depan========================='
glColor3f 1, 0, 0.5
glBegin bmPolygon
For ttk = 1 To 4
With Objek.Sisi_Depan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'================kanan============================'
glColor3f 1, 0, 2.5
glBegin bmPolygon
For ttk = 1 To 4
With Objek.Sisi_Kanan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'================belakang============================'
glColor3f 1, 0.2, 0.4
glBegin bmPolygon
For ttk = 1 To 4
With Objek.Sisi_Belakang(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'==========================================================='
'============PRISMA ATAS============================'
'====================================================='
'============Sisi_Primas_Kiri=========================='
glColor3f 0.5, 0, 0.5
glBegin bmTriangles
For ttk = 1 To 3
With Objek.Sisi_Primas_Kiri(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'============Primas dEPAN========================='
glColor3f 0.5, 0, 2.5
glBegin bmTriangles
For ttk = 1 To 3
With Objek.Sisi_Primas_Depan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'============Primas kanan=========================='
glColor3f 0.5, 0, 2.5
glBegin bmTriangles
For ttk = 1 To 3
With Objek.Sisi_Primas_Kanan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'===========Sisi_Primas_Belakang=========================='
glColor3f 0.5, 0, 0.5
glBegin bmTriangles
For ttk = 1 To 3
With Objek.Sisi_Primas_Belakang(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'========================================='
'=============PRISMA BAWAH================='
'============================================='
'===========Sisi_Primas_ bawah _ belakang========================='
glColor3f 1, 0.2, 0.4
glBegin bmTriangles
For ttk = 1 To 3
With Objek.Sisi_Primas_bawah_Belakang(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'===========Sisi_Primas_ bawah _ kanan=========================='
glColor3f 1, 0.2, 0.4
glBegin bmTriangles
For ttk = 1 To 3
With Objek.Sisi_Primas_Bawah_kanan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'===========Sisi_Primas_ bawah _ kiri=========================='
glColor3f 0.5, 0, 2.5
glBegin bmTriangles
For ttk = 1 To 3
With Objek.Sisi_Primas_bawah_kiri(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'===========Sisi_Primas_ bawah _ depan=========================='
glColor3f 0.5, 0, 0.5
glBegin bmTriangles
For ttk = 1 To 3
With Objek.Sisi_Primas_Bawah_Depan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
Call Tampilkan_Gambar
End Sub
=====================SCRIP MODUL ===============================
===============================================================
'VARIABEL Buatan
Public Type Titik3D
x As Single
y As Single
z As Single
End Type
Public Type Sisi
Sisi_Depan(1 To 4) As Titik3D
Sisi_Kanan(1 To 4) As Titik3D
Sisi_Belakang(1 To 4) As Titik3D
Sisi_Kiri(1 To 4) As Titik3D
Sisi_Atas(1 To 4) As Titik3D
Sisi_Bawah(1 To 4) As Titik3D
Sisi_Primas_Depan(1 To 4) As Titik3D
Sisi_Primas_Kanan(1 To 3) As Titik3D
Sisi_Primas_Kiri(1 To 3) As Titik3D
Sisi_Primas_Belakang(1 To 3) As Titik3D
Sisi_Primas_Bawah_Depan(1 To 3) As Titik3D
Sisi_Primas_bawah_Belakang(1 To 3) As Titik3D
Sisi_Primas_bawah_kiri(1 To 3) As Titik3D
Sisi_Primas_Bawah_kanan(1 To 3) As Titik3D
End Type
Public Objek As Sisi
Sub EnableOpenGL(ghDC As Long)
Dim pfd As PIXELFORMATDESCRIPTOR
ZeroMemory pfd, Len(pfd)
pfd.nSize = Len(pfd)
pfd.nVersion = 1
pfd.dwFlags = PFD_DRAW_TO_WINDOW Or PFD_SUPPORT_OPENGL Or PFD_DOUBLEBUFFER
pfd.iPixelType = PFD_TYPE_RGBA
pfd.cColorBits = 24
pfd.cDepthBits = 32
pfd.iLayerType = PFD_MAIN_PLANE
PixFormat = ChoosePixelFormat(ghDC, pfd)
If PixFormat = 0 Then GoTo ee
SetPixelFormat ghDC, PixFormat, pfd
hrc = wglCreateContext(ghDC)
wglMakeCurrent ghDC, hrc
Exit Sub
ee: MsgBox "Nelze nastavit parametry pro zobrazení grafiky!"
End
End Sub
Sub DisableOpenGL()
wglMakeCurrent 0, 0
wglDeleteContext hrc
End Sub
0 komentar on "OpenGL 3D Roket Cinta Menusuk Hatimu ala YULIANA...........:)"
Posting Komentar