Perbincangan pengguna:Izaty 85
Maklumat[sunting sumber]
Salam Wikipedia pengguna Izaty 85, setiap kali anda memuat naik gambar, fail atau imej ke Wikipedia, anda MESTI mengemukakan lesen, jika tidak, Wikipedia boleh memadamkannya. Harap maklum, sila rujuk Wikipedia:Dasar penggunaan imej untuk maklumat lanjut.--Smim90 (bincang) 10:33, 21 November 2011 (UTC)
Draw multiple randomly generated points in OpenGL (Melukis Titik Secara Rawak dalam OpenGL)[sunting sumber]
#include <stdlib.h> #include <GL/glut.h> #define Height 400 #define Width 400 void display(void) { int x, y; glColor3f(1, 0, 0); x = rand() % Width; y = rand() % Height; glBegin(GL_POINTS); glEnd(); glFlush(); } static void reshape(int w, int h) { glMatrixMode (GL_PROJECTION); glLoadIdentity (); glOrtho(0, Width, 0, Height, -1.0, 1.0); } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE); glutInitWindowSize(Width, Height); glutCreateWindow("Example 1.1.point.c: randomly generated points"); glutReshapeFunc(reshape); glutDisplayFunc(display); glutIdleFunc(display); glutMainLoop(); }
Penerangan Koding
#include <stdlib.h>
// dalam semua program grafik, ia memerlukan fail utama(header file) untuk OpenGL perpustakaan utama(core library).
#include <GL/glut.h>
//adalah antaramuka GLUT (OpenGL Utility Toolkit) perpustakaan utiliti yang menyediakan platform antara muka pengguna bebas .
#define Height 400 #define Width 400
//arahan untuk memberi nama yang bermakna tetap(malar) dalam program
void display(void) { int x, y;
//mengisytiharkan integer x dan y
glColor3f(1, 0, 0);
//nyatakan warna : merah
x = rand() % Width; y = rand() % Height;
// Membina titik secara rawak untuk menentukan koordinat x dan y
glBegin(GL_POINTS);
//Nyatakan titik untuk memulakan
glVertex2i (x,y);
//memberi ruang untuk membina point yang lain
glEnd();
//tidak memberi apa-apa nilai.memberitahu openGL selesai menakrifkan titik
glFlush(); }
//kod ini untuk output(gambar) muncul pada skrin untuk memproses kesemua rutin OpenGL secepat mungkin
static void reshape(int w, int h) {
// Fungsi ini dipanggil apabila saiz tetingkap berubah
glMatrixMode (GL_PROJECTION);
//Kod ini menyatakan kordinat pada tertingkap menetapkan mod matriks semasa.
glLoadIdentity ();
// fungsi menggantikan matriks dengan matriks identiti.
glOrtho(0, Width, 0, Height, -1.0, 1.0); }
// darab matriks semasa dengan matriks fungsi menerangkan matriks perspektif yang menghasilkan unjuran selari. bermakna bahawa x, y dan z purata dari -1 hingga 1 dipaparkan di tertingkap OpenGL
int main(int argc, char **argv) { glutInit(&argc, argv);
//memulakan(initialize) kawasan lukisan dan tertingkap. Fungsi permulaan boleh memproses mana-mana ayat arahan(arguments)tetapi tidak memerlukan parameters untuk contoh program pertama.
glutInitDisplayMode(GLUT_SINGLE);
//kita boleh mengubah posisi dan saiz. Kita juga boleh mengeset nombor pilihan lain untuk memaparkan window(display window)
glutInitWindowSize(Width, Height);
//Digunakan untuk mengeset pixel awalan lebar dan tinggi untuk paparan tingkap(400 x 400)
glutCreateWindow("Example 1.1.point.c: randomly generated points");
//Menyatakan bahawa paparan tingkap adalah untuk dicipta pada skrin dengan pemberian tajuk.
glutReshapeFunc(reshape); glutDisplayFunc(display);
//Memanggil semula fungsi(event callback functions)
glutIdleFunc(display);
//Untuk spesifikkan kandungan tingkap
glutMainLoop(); }
//Ini diperlukan untuk menyempurnakan tingkap-pemprosesan operasi dan pelaksanaan penyataan tersebut, kesemua paparan tingkap yang dicipta termasuk kandungan grafik akan diaktifkan.(memulakan gelung acara tingkap)
Output