LẬP TRÌNH OPENGL VỚI THƯ VIỆN AUX - Trang 25

nhiều.Nó lưu cá điểm lại và nối thành một đường gấp khúc.Nhược điểm
của chương trình trên hẳn các bạn đã rõ khi biên dịch nó.Nó không vẽ lại
cửa sổ của bạn khi cửa sổ của bạn bị che bởi một cửa sổ khác, hay bị
minimize, tức là hình mà bạn muốn vẽ không được gửi tới hàm draw().Vì
vậy bạn phải lưu những điểm đã chọn và vẽ lại chúng trong hàm
draw().Dưới đây là mã nguồn:
/*filename connectlines1.cpp*/
#ifdef unix
#include <GL/gl.h>
#include "aux.h"
#define CALLBACK
#else
#include<windows.h>
#include<GL/gl.h>
#include<GL/glaux.h>
#endif
#define MAXPOINTS 100 /*số điểm tối đa có thể được chọn*/
GLint point[MAXPOINTS][2]; /*mảng lưu trữ các điểm đó*/
int num=0; /*số điểm đã chọn đến thời điểm hiện tại*/
GLvoid CALLBACK draw(void)
{
int i;
if(num>=2){
glClearColor(1.0,1.0,1.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3d(0.0,0.0,0.0);
glBegin(GL_LINE_STRIP); /*bạn hãy nhớ cấu trúc này*/
for(i=0;i<num;i++)
{
glVertex2iv(point[i]);
}
glEnd();

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.