Vẽ Các Hình Học Cơ Bản Trong OpenGL. - Dang Khoa

May 3, 2012

Vẽ các hình học cơ bản trong OpenGL.

Tạo một dự án Empty Project và thiết lập cài đặt dành cho glut và OpenGL. Có thể tham khảo tại đây. Gõ (hoặc chép) đoạn code sau: #include <iostream> #include <gl\glut.h> #include <gl\GL.h> #include <gl\GLU.h> void display() { glColor3f(1.0,1.0,0.0); glPointSize(10); glBegin(GL_POINTS); glVertex2f(50,100); glVertex2f(200,200); glEnd(); glFlush(); } int main(int argc, char** argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE); glutInitWindowPosition(0,0); glutInitWindowSize(500,500); glutCreateWindow("Ve"); glClearColor(0.0,0.0,0.0,0.0); glClear(GL_COLOR_BUFFER_BIT); glOrtho(0.0,500,0.0,500,-1.0,1.0); glutDisplayFunc(display); glutMainLoop(); return 0; } Phần #include: để nhập các thư viện, file header để sử dụng các hàm glut, OpenGL. Nghiên cứu các hàm được gọi trong Main() trước:
  • glutInit(int* pargc,char **argv): Khởi tạo thông số cho cửa sổ của glut. Các tham số pargc và argv được lấy từ hàm main().
  • Các hàm về thiết lập cửa sổ màn hình:
    • glutInitDisplayMode(int mode): thiết lập chế độ màu, buffer cho màn hình.
Danh sách các thiết lập: GLUT_RGBA: thiết lâp cho chế độ màn hình RGBA. GLUT_RGB: tương tự GLUT_RGBA. GLUT_INDEX: thiết lập chế độ màu mặc định. GLUT_SINGLE: thiết lập chế độ màn hình buffer đơn. GLUT_DOUBLE: thiết lập chế độ màn hình buffer đôi. GLUT_ACCUM: thiết lập chế độ accumulation buffer. GLUT_ALPHA: thiết lập chế độ đối tương anpha cho buffer màu. GLUT_DEPTH: thiết lập cho depth buffer. GLUT_STENCIL: thiết lập cho stencil buffer. GLUT_MULTISAMPLE: thiết lập cho multisampling. GLUT_STEREO: thiết lập chế độ stereo. GLUT_LUMINANCE: thiết lập cho chế độ màu "luminance". Sử dụng toán tử OR để kết hợp các chế độ màu, buffer với nhau.
  • glutInitWindowPosition(int x, int y): tọa độ cửa sổ màn hình.
  • glutInitWindowSize(int x, int y): thiết lập kích thước cửa sổ màn hình.
  • glutCreateWindow(char* title): tạo cửa sổ màn hình với tiêu đề là title.
  • glClearColor(Glclampf red, Glclampf green, Glclampf blue, Glclampf alpha): thiết lập chế độ màu mới cho toàn bộ ứng dụng.
  • glClear(int mode): GL_COLOR_BUFFER_BIT: thông số để thiết lập cho màu sắc. Còn một số thiết lập nữa sẽ được đề cập sau.
  • glOrtho(...): thiết lập tầm nhìn trực giao, sẽ được nói chi tiết trong bài về phép biến trong OpenGL.
  • glutDisplayFunc(void (*f)(void)): gọi hàm để thực hiện việc vẽ khi cửa sổ màn hình hiển thị. Trong ví dụ này là gọi hàm display.
  • glutMainLoop(): Lặp đi lặp lại các hàm callback - sẽ đề cập sau - đến khi nao cửa sổ đóng lại.
Trong hàm display:
  • glColor3f( red, green, blue ): thiết lập màu sắc cho đối tượng sắp vẽ.
  • glPointSize(float size): kích thước điểm ảnh.
  • glBegin(int mode): gồm các thông số và minh họa phía dưới:
clip_image001
  • glEnd():kết thúc quá trình vẽ.
  • glFlush(): đưa dữ liệu từ bộ nhớ tạm và màn hình.

3 comments:

  1. Duy Kiên29/3/13 20:43

    Cannot open include file: 'GL/gl.h. loi nay la ntn ha ban?

    ReplyDeleteReplies
      Reply
  2. Test29/3/13 21:43

    không tìm thấy file header. Có vài trường hợp như sau:- đường dẫn sai. bạn thử thay thành 'gl/gl.h' xem.- cấu hình project sai.- máy không có opengl

    ReplyDeleteReplies
      Reply
  3. Unknown8/4/14 21:39

    Bạn có bt làm thế nào để lấy tọa độ chuột khi mh click vào màn hình trong opengl ko! Chỉ mh với... Bạn gửi cho mh qua email: [email protected]́m ơn bạn nhiều!

    ReplyDeleteReplies
      Reply
Add commentLoad more... Newer Post Older Post Home Subscribe to: Post Comments (Atom)

Labels

algorithm Android C Library C program c-lang C++ cấu hình CDIO Code Đáng suy ngẫm đồ họa Eclipse english Excel FIT HCMUS Game glut Hệ điều hành Hỏi ngu Internet Java Kiến trúc máy tính kinh nghiệm Lập trình Latex Leap Motion Lịch sử máy tính Linh tinh linux machine learning Mobile Multithread nachos Office OOP OpenCV OpenGL Phần mềm PHP programming prolog python Qt Framework software engineering system programming tai liệu tản mạn Thế hệ máy tính Theme Thủ thuật Thuật toán và giải thuật Tin tức Tips tools Tutorial Ubuntu Video vim Visual Studio Webdev Windows

Search This Blog

About Me

Test View my complete profile

Blog Archive

  • ▼  2012 (27)
    • ▼  May (5)
      • Danh sách liên kết (Linked List)
      • Vẽ các hình học cơ bản trong OpenGL.
      • Static: biến, hàm, các vấn đề xung quanh
      • Struct, Enum, union.
      • Hằng, các vấn đề xung quanh.

Popular Posts

  • Hướng dẫn cài đặt OpenGL. Sau đây là hướng dẫn cài đặt OpenGL (Open Graphic Library) trên các phiên bản Visual Studio. Mặc dù OpenGL đã được cài đặt sẵn trên các driv...
  • Danh sách liên kết (Linked List) Ngộ nhận ra bài này mình viết code rất dở, để khi nào rảnh sẽ edit lại. Danh sách liên kết có những ứng dụng rất thú vị Hôm nay Kỹ Thuật Lập...
  • Hướng dẫn cài đặt OpenCV cho Visual Studio 2010, 2012 và 2013 bản x64. Mình đã vật lộn mất gần một buổi để cài nó. Hi vọng có bạn nào dùng cái này sẽ đỡ phải nhọc. Không chỉ cài đặt được trên phiên bản 2.3.1, hư...
  • Lập trình syscall trên nachos Trong file hướng dẫn của thầy không thực sự cụ thể, và như vậy rất khó cho mọi người thực hành theo, vậy mình sẽ viết lại các qui trình một ...
  • Data Analysis Tool Một bài tập hơi hơi lớn, một đề tài hơi hơi khoai vì dính dáng nhiều đến xác suất thống kê, nhưng khá thú vị. Tuy nhiên, đây không phải là b...

Từ khóa » Các Lệnh Trong Opengl