Cara membuat lingkaran di OpenGL

Pengarang: Eugene Taylor
Tanggal Pembuatan: 12 Agustus 2021
Tanggal Pembaruan: 1 Juli 2024
Anonim
Tutorial Menggambar Lingkaran di OpenGL
Video: Tutorial Menggambar Lingkaran di OpenGL

Isi

OpenGL, atau Open Graphics Library, adalah API grafik (Application Programming Interface) untuk menulis aplikasi 2D dan 3D dalam berbagai bahasa dan platform pemrograman. Ini dapat digunakan untuk merender apa saja mulai dari objek sederhana dan primitif hingga pemandangan 3D yang kompleks. Open GL banyak digunakan dalam desain komputer, visualisasi ilmiah, simulasi penerbangan, dan video game. Meskipun OpenGl tidak memiliki metode untuk menggambar lingkaran secara langsung, dimungkinkan untuk membuatnya menggunakan serangkaian garis. Anda harus memiliki pengetahuan dasar tentang OpenGL untuk menggambar lingkaran.

Langkah 1

Buat program dasar dengan viewport OpenGL. Jika Anda tidak terbiasa dengan proses ini, ada tutorial di halaman OpenGL.


Langkah 2

Tambahkan file math.h.header ke program Anda dengan memasukkan kode berikut di awal program: #include . Ini akan memberi Anda fungsi cos () dan sin () (sinus dan cosinus) yang diperlukan untuk menghitung lingkaran.

LANGKAH 3

Mulailah metode lingkaran dengan menambahkan kode berikut sebelum menampilkan fungsi panggilan balik:

void drawCircle (GLint x, GLint y, GLint radius, int num_lines) {}

Variabel "x" dan "y" akan digunakan untuk menentukan pusat lingkaran di jendela Anda, sedangkan "jari-jari" menetapkan jari-jari lingkaran. Bilangan bulat "num_lines" adalah jumlah baris yang digunakan untuk menyusun lingkaran. Semakin tinggi angkanya, lingkaran yang muncul akan semakin mulus.

LANGKAH 4

Tambahkan kode konfigurasi berikut di dalam kunci:

sudut float GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO.

Variabel "sudut" akan berisi sudut garis yang digunakan untuk membuat lingkaran. Memanggil fungsi glColor3f () menyetel warna garis menjadi hitam, di mana rangkaian tiga 0 sesuai dengan intensitas merah, hijau, dan biru pada skala 0 hingga 1.


LANGKAH 5

Tambahkan kode berikut di bawah fungsi glColor3f () dari langkah 4:

glBegin (GL_LINE_LOOP) GO

Ini memberi tahu OpenGL bahwa setiap baris berikutnya melibatkan garis gambar. Secara khusus, ini akan menggambar "GL_LINE_LOOP", yang merupakan rangkaian garis yang terhubung.

LANGKAH 6

Masukkan kode berikut untuk loop for setelah panggilan glBegin ():

untuk (int i = 0; i <row_number; i ++) {angle = i * 2 * M_PI / num_line; glVertex2f (x + (cos (sudut) * radius), y + (sin (sudut) * radius)); }

Perulangan ini melakukan tiga hal. Pertama, iterasi sesuai dengan nilai "num_lines", di mana num_lines adalah integer, menggambar garis di setiap iterasi dan menghasilkan lingkaran yang terdiri dari garis lurus num_lines. Kedua, ini menghitung sudut garis relatif terhadap pusat lingkaran dalam radian. "M_P" adalah konstanta yang didefinisikan dalam math.h yang mewakili pi. Terakhir, panggilan ke glVertex2f () menghitung koordinat titik akhir garis.


LANGKAH 7

Setelah loop-to, masukkan baris kode berikut:

glEnd () PERGI

Ini akan memberi tahu OpenGL bahwa Anda telah selesai menggambar garis.

LANGKAH 8

Untuk menggambar lingkaran dalam sebuah adegan, tambahkan panggilan dari metode drawCircle () ke fungsi tampilan panggilan balik program, yang harus disiapkan pada langkah 1. Tentukan nilai x, y, radius dan num_lines, di mana x dan y mewakili sebuah titik dalam adegan Anda, radius adalah jari-jari lingkaran, dan num_lines adalah jumlah garis yang membentuk lingkaran. Sekali lagi, jika Anda tidak terbiasa dengan OpenGL dan tampilan panggilan balik, lihat tutorial OpenGL.

LANGKAH 9

Kompilasi dan jalankan program Anda. Jika Anda memasukkan fungsi dengan benar, itu harus dikompilasi tanpa kesalahan. Jika Anda menentukan nilai untuk x, y dan radius, Anda akan melihat lingkaran hitam ditampilkan dengan latar belakang putih.

Memperbarui dapur dengan model lemari, meja dapur, perkaka, dan peralatan terbaru dapat meningkatkan nilai ebuah rumah. Dalam renovai dapur, mengganti lemari dapur dan meja dapur adalah peningkatan ya...

Kebanyakan vitamin manuia tidak cocok untuk anjing. eperti gigi taring karnivora, hewan ini memiliki kebutuhan nutrii yang berbeda dari yang diajikan oleh manuia, yang merupakan primata omnivora. Namu...

Pilih Administrasi