Langsung ke konten utama

Cara Membuat Gambar Bergerak atau Tweening di OpenGL


BELAJAR OPENGL - Halo teman, terimakasih telah berkunjung ke blog Cara Informatika yang sederhana ini, seperti biasa blog ini masih membahas tentang yang berhubungan dengan ilmu komputer, salah satunya adalah OpenGL, materi ini bisasanya kita pelajari di dalam perkuliahan jurusan komputer, yang dipelajari di dalam mata kuliah bernama Komputer Grafik atau Grafika Komputer, di dalam OpenGL kita belajar tentang bagaimana cara membuat Gambar 2D dan 3D menggunakan bahasa pemrograman C dan C++ yang mana pembelajaran ini adalah dasar dari pengembangan ilmu Komputer Grafis.

gambar bergerak twening opengl

Pada materi OpenGL kali ini, saya akan menunjukkan bagaimana cara membuat gambar bergerak di OpenGL menggunakan bahasa pemrograman C++, pergerakan atau perpindahan gambar di OpenGL ini dapat juga di Sebut Tweening, karna Tweening adalah mengubah bentuk, ukuran, atau tempat dalam artian disini adalah titik kordinat, dengan motion inbeetween (gerak perubahan antara awal dan akhir)

Sebelum saya menunjukkan dan menjelaskan koding yang di gunakan di dalam membuat gambar bergerak di OpenGL ini, disini saya memberikan sedikit informasi bahwa software yang saya gunakan untuk menulis dan menjalankan bahasa pemrograman C++ di OpenGL yaitu software bernama Codeblocks, yang mana software ini memiliki fungsi dan kegunaan yang sama dengan yang biasa di ajarkan di perkuliahan yaitu visual C++, atau visual studio, untuk menulis dan menjalankan bahasa pemrograman C++ dalam belajar OpenGL.

Alasan kenapa saya  menggunakan Codeblocks adalah karna laptop saya sedikit bermasalah ketika melakukan pemasangan glut pada Visual C++ atau Visual Studio, bagi yang tertarik atau memiliki masalah yang sama, Codeblocks dapat di pelajari dengan melihat di bagian menu blog ini yaitu OpenGL dan Dasar OpenGL.

Baiklah langsung saja kita akan membuat gambar bergerak menggunakan OpenGL, yang pertama saya sudah menyiapkan titik kordinat dan juga sebuah gambar mobil sederhana dengan OpenGL.
gambar mobil bergerak opengl

pada gambar titik kordinat di atas, dapat dilihat disana saya membuat dua buah poligon berwarna merah dan biru, dan juga dua buah lingkaran berwarna putih sebagai rodanya.

bagi kalian yang belum mengerti tentang lingkaran dengan OpenGL dapat di pelajari dulu di blog ini silahkan menuju Cara Membuat Lingkaran di Opengl

untuk warna di dalam OpenGL juga dapat di pelajari di sini pada Koding Warna di Opengl

Bagi teman-teman yang Ingin dibantu dalam pembuatan tugas OpenGL silahkan DM ke Instagram @mahara.kata atau silahkan hubungi admin di menu HUBUNGI ADMIN

Setelah gambar selesai dibuat dengan OpenGL, selanjutnya tinggal menambahkan koding gerak untuk OpenGL yang mana dapat dilihat di bawah ini:

Deklarasikan variabel gerak otomatis di bagian atas
//deklarasi gerakan otomatis
int gerak = 0;
bool atas = true;

Letakkan perintah Gerak di dalam Void Display atau lebih tepatnya di bagian sebelum pembuatan gambar Objek (diatas koding gambar mobil)
//perintah animasi
glPushMatrix();
glTranslatef( gerak, 0,0);
//contoh disini digambar sebuah mobil

Selanjutnya letakkan Koding dibawah ini di dalam Void Display di bagian bawah gambar Objek dibawah glFlush();
glPopMatrix();

Selanjutnya buatlah sebuah Void timer
void timer(int t)
{
    if (atas){
        gerak += 1;
    } else {
        gerak -= 1;
    }
    if (gerak > 20) {
        atas = false;
    } else if(gerak < -20){
        atas = true;
    }
 glutPostRedisplay();
//kecepatan mobil berbanding terbalik
//semakin besar nilai glutTimerFunc maka akan semakin pelan gerakannya
//ubahlah angka 50 agar mengerti
 glutTimerFunc(50,timer,0);

Terakhir di int main atau void main, panggil void timer
glutTimerFunc(1,timer,0);

mobil 2d opengl


Untuk koding lengkap membuat gambar bergerak di OpenGL, dapat di lihat di bawah ini :

#include<gl/freeglut.h>//glut terpasang di codeblocks
#include<gl/glut.h>//glut visual C++
//catatan untuk di atas kalian bisa hapus salah satu
//atau gunakan sesuai dimana glut.h kalian terpasang
#include<windows.h>
#include<math.h>//agar terpasang rumus matematika untuk lingkaran

//deklarasi pembuatan lingkaran
const double PI = 3.142857143;
int i,radius,jumlah_titik,x_tengah,y_tengah;

//deklarasi gerakan otomatis
int gerak = 0;
bool atas = true;

void display (void)
{
glClear(GL_COLOR_BUFFER_BIT);
//perintah untuk gerakan
glPushMatrix();
glTranslatef( gerak, 0,0);

//Untuk radius titik variabel disini saya menggunakan range 1-9 bukan 0.0-0.9
//silahkan sesualkan saja bila hasilnya sangat kecil atau sangat besar
//untuk mengatur besar kecil tampilan dapat diseting kembali di void main

glBegin(GL_POLYGON);// biru
glColor3f(0,0,1);
glVertex2f(-5,0);
glVertex2f(5,0);
glVertex2f(5,2);
glVertex2f(-4,2);
glVertex2f(-5,1);
glEnd();
glBegin(GL_POLYGON);// merah
glColor3f(1,0,0);
glVertex2f(-2,2);
glVertex2f(4,2);
glVertex2f(3,4);
glVertex2f(0,4);
glEnd();

glBegin(GL_POLYGON);//menggunakan polygon agar dalam lingkaran terisi
glColor3f(1,1,1);//warna lingkaran
radius = 100; //radius 1 dikali 100
jumlah_titik = 60;//semakin banyak titik semakin halus lingkarannya
x_tengah = -300;//tengah lingkaran -0.3 dikali 100
y_tengah = 0;//tengah lingkaran
for (i=0;i<=360;i++)
{
    float sudut=i*(2*PI/jumlah_titik);
    float x=x_tengah+radius*cos (sudut);
    float y=y_tengah+radius*sin (sudut);
    glVertex2f(x/100,y/100);
}
glEnd();

glBegin(GL_POLYGON);//menggunakan polygon agar dalam lingkaran terisi
glColor3f(1,1,1);//warna lingkaran
radius = 100; //radius 1 dikali 100
jumlah_titik = 60;//semakin banyak titik semakin halus lingkarannya
x_tengah = 300;//tengah lingkaran 3 dikali 100
y_tengah = 0;//tengah lingkaran
for (i=0;i<=360;i++)
{
    float sudut=i*(2*PI/jumlah_titik);
    float x=x_tengah+radius*cos (sudut);
    float y=y_tengah+radius*sin (sudut);
    glVertex2f(x/100,y/100);
}
glEnd();

glFlush();//untuk membersihkan
glPopMatrix();
}


void timer(int t)
{
    if (atas){
        gerak += 1;
    } else {
        gerak -= 1;
    }
    if (gerak > 20) {
        atas = false;
    } else if(gerak < -20){
        atas = true;
    }
 glutPostRedisplay();
//kecepatan mobil berbanding terbalik
//semakin besar nilai glutTimerFunc jika ingin mengganti kecepatan
//silahkan ganti angka 50 di bawah ini, misal 100 mobil akan semakin lambat
//dibawah 50 mobil akan semakin cepat
 glutTimerFunc(50,timer,0);
}

int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(700,700);
glutCreateWindow("Mobil Bergerak");
//background warna putih
glutDisplayFunc(display);
gluOrtho2D(-20, 20, -20, 20);//mengatur tampilan agar terlihat seluruhnya
glutTimerFunc(1,timer,0);
glutMainLoop();
}

Baca Juga :

baiklah mungkin sampai disini dahulu pembajasan kali ini, lebih dan kurangnya saya mohon maaf, terimakasih telah berkunjung, bila teman teman butuh bantuan atau jasa dalam pembuatan OpenGL ini silahkan hubungi admin, dengan menekan menu HUBUNGI ADMIN , terimakasih

Komentar

Postingan populer dari blog ini

Coding Warna OpenGL

BELAJAR OPENGL - Dalam Membuat project OpenGL yang mana tidak terlepas dengan yang namanya gambar , nah gambar ini pasti memiliki warna dan dalam OpenGL yang mana untuk membuat warna diperlukan Koding, dan disini saya akan membahas warna opengl, sebelumnya Terimakasih bagi teman-teman yang sudah mengunjungi blog cara informatika yang masih sederhana ini, pada tulisan kali ini saya akan membahas tentang koding warna pada opengl atau bisa juga disebut sebagai pewarnaan pada opengl, koding pewarnaan pada OpenGL sebenarnya sangatlah lengkap dan kita sebenarnya dapat memberikan warna apapun yang kita mau, namun disini saya akan membagikan atau mengkategorikan kriteria warna agar dapat dengan mudah di pahami. Sebelum itu kita bahas sedikit tentang OpenGL, di dalam Belajar OpenGL kita dapat membuat Gambar 2D atau 3D menggunakan bahasa pembrograman C atau C++, biasanya opengl kita pelajari dalam perkuliahan contohnya jika kita mengambil jurusan Teknik Informatika atau jurusan komputer l...

MEMBUAT GAMBAR RUMAH 3D DI OPENGL

GAMBAR 3D OPENGL - Gambar rumah 3D (tiga dimensi) merupakan salah satu contoh project 3d opengl menggunakan bahasa pemrograman C++  dan juga Glut OpenGl, biasanya dipelajari dalam komputer grafik atau grafika komputer , untuk memulai membuat project biasanya memerlukan software compiler yang berfungsi untuk build dan run bahasa C++, contohnya yaitu Microsoft visual C++, Dev C++. Codeblocks dan sejenisnya, disini juga dibutuhkan Glut sebagai library OpenGL itu sendiri. DOWNLOAD SOURCE CODE NB : Link download menggunakan shortlink jadi silahkan lewati iklannya terimakasih Compiler yang saya gunakan adalah codeblocks, untuk isi koding semuanya sama dan mungkin yang berbeda hanya di bagian lokasi dan cara pemasangan untuk glut nya saja. BACA JUGA  CARA INSTAL DAN PEMASANGAN GLUT DI CODEBLOCKS GAMBAR RUMAH 3D DI OPENGL Project rumah 3d ini merupakan contoh yang dapat diambil dan digunakan sebagai bahan pembelajaran, untuk kodingnya sudah tersedia di bawah ini dan juga beserta pemb...

Gambar Kapal 2D OpenGL dengan Microsoft Visual C++

Halo teman, Kali ini saya menulis tentang Membuat sebuah Gambar kapal 2D di OpenGL,yang mana OpenGL adalah salah satu materi yang di pelajari jika kita mengambil kuliah dengan jurusan komputer, OpenGL biasanya di pelajari di dalam mata kuliah Komputer Grafik atau juga Grafika Komputer yang mana kita akan belajar bagaimana membuat gambar baik itu 2D atau 3D menggunakan bahasa pemrograman C atau C++. Untuk menjalankan bahasa pemrograman C atau C++ biasanya kita membutuhkan atau memerlukan software sebagai compiler, dalam artian kita membutuhkan sofware untuk menulis dan menjalankan bahasa pemrograman C atau C++, sebagai contoh kita dapat menggunakan Microsoft Visual C++ atau sekarang saat saya memperbarui tulisan ini langsung menggunakan Microsoft Visual Studio, dapat juga menggunakan software seperti Dev-C++ atau juga dapat menggunakan aplikasi Codeblocks yang pada dasarnya fungsinya sama. jika teman-teman tertarik mencoba software Dev-C++ ataupun Codeblocks, dapat di baca di b...