Cara membuat bulatan di OpenGL

Pengarang: Eugene Taylor
Tarikh Penciptaan: 11 Ogos 2021
Tarikh Kemas Kini: 1 Julai 2024
Anonim
Tutorial Menggambar Lingkaran di OpenGL
Video.: Tutorial Menggambar Lingkaran di OpenGL

Kandungan

OpenGL, atau Open Graphics Library, adalah API grafik (Antaramuka Pengaturcaraan Aplikasi) untuk menulis aplikasi 2D dan 3D dalam pelbagai bahasa dan platform pengaturcaraan. Ia dapat digunakan untuk membuat apa saja, dari objek primitif yang sederhana hingga pemandangan 3D yang kompleks. Open GL banyak digunakan dalam reka bentuk komputer, visualisasi saintifik, simulasi penerbangan dan permainan video. Walaupun OpenGl tidak mempunyai kaedah untuk melukis bulatan secara langsung, adalah mungkin untuk membuatnya dengan menggunakan rangkaian garis. Anda perlu mempunyai pengetahuan asas mengenai OpenGL untuk melukis bulatan.

Langkah 1

Buat program asas dengan viewport OpenGL. Sekiranya anda tidak biasa dengan proses ini, ada tutorial di halaman OpenGL.


Langkah 2

Tambahkan fail math.h.header ke program anda dengan memasukkan kod berikut pada awal program: #include . Ini akan memberi anda fungsi cos () dan sin () (sinus dan kosinus) yang diperlukan untuk mengira bulatan.

Langkah 3

Mulakan kaedah bulatan dengan menambahkan kod berikut sebelum memaparkan fungsi panggilan balik:

undian tidak sahCircle (GLint x, GLint y, GLint radius, int num_lines) {}

Pemboleh ubah "x" dan "y" akan digunakan untuk menentukan pusat bulatan di tetingkap anda, sementara "radius" menetapkan jejari bulatan. Bilangan bulat "num_lines" adalah bilangan garis yang digunakan untuk menyusun bulatan. Semakin tinggi bilangan ini, lingkaran yang lebih halus akan muncul.

Langkah 4

Tambahkan kod konfigurasi berikut di dalam kekunci:

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

Pemboleh ubah "sudut" akan mengandungi sudut garis yang digunakan untuk membina bulatan. Memanggil fungsi glColor3f () menetapkan warna garis menjadi hitam, di mana siri tiga 0 sesuai dengan intensiti merah, hijau dan biru pada skala 0 hingga 1.


Langkah 5

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

glBegin (GL_LINE_LOOP) PERGI

Ini memberitahu OpenGL bahawa mana-mana garis seterusnya melibatkan melukis garis. Secara khusus, ia akan menarik "GL_LINE_LOOP", yang merupakan rangkaian garis yang bersambung.

Langkah 6

Masukkan kod berikut untuk gelung untuk selepas panggilan glBegin ():

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

Gelung ini melakukan tiga perkara. Pertama, ia berulang mengikut nilai "num_lines", di mana num_lines adalah bilangan bulat, melukis garis dalam setiap lelaran dan menghasilkan lingkaran yang terdiri dari garis lurus num_lines. Kedua, ia mengira sudut garis relatif dengan pusat bulatan pada radian. "M_P" ialah pemalar yang ditentukan dalam math.h mewakili pi. Akhirnya, panggilan ke glVertex2f () mengira koordinat titik akhir garis.


Langkah 7

Selepas loop-to, masukkan baris kod berikut:

glEnd () PERGI

Ini akan memberitahu OpenGL bahawa anda telah selesai melukis garis.

Langkah 8

Untuk melukis lingkaran dalam pemandangan, tambahkan panggilan dari kaedah drawCircle () ke fungsi paparan panggilan balik program, yang mesti disiapkan pada langkah 1. Tentukan nilai x, y, radius dan num_lines, di mana x dan y mewakili titik dalam pemandangan anda, radius adalah jejari bulatan, dan num_lines adalah bilangan garis yang membentuk bulatan. Sekali lagi, jika anda tidak biasa dengan OpenGL dan paparan panggilan balik, lihat tutorial OpenGL.

Langkah 9

Susun dan jalankan program anda. Sekiranya anda memasukkan fungsi dengan betul, fungsi tersebut harus disusun tanpa kesalahan. Sekiranya anda menentukan nilai x, y dan jejari, anda akan melihat lingkaran hitam yang dipaparkan pada latar belakang putih.

Jam Timex 1440 ukan direka untuk kegunaan ehari-hari. Dinamakan dengan bilangan minit ehari, 1440 dilengkapi dengan jam dan penggera upaya etiap menit dalam ehari dikira. Penggemar ukan dan juruteknik...

Memaang akuarium baru untuk ikan boleh menjadi tuga yang rumit, terutamanya jika anda mempertimbangkan item tambahan eperti pam udara dan penapi. Walau bagaimanapun, terdapat beberapa pilihan penapi y...

Kami Menasihati Anda Untuk Melihat