auxReshapeFunc(resize);
auxMainLoop(draw);
return 0;
}
Phần khai báo dữ liệu, đối với các bạn chắc thật dễ hiểu, điều đáng nói thứ
nhất là chúng ta dùng hàm glVertex3dv() thay cho các hàm vẽ đỉnh 2 chiều
trước đây, hàm này nhận tham số là thành viên của mảng, giá trị của các
thành viên phải là double, và nó có toạ độ 3 chiều.
Trước hết biên dịch chương trình trên, bạn sẽ chưa thấy gì nếu không cho
hai hàm mà tôi đã đánh dấu đỏ bên trên vào.Các bạn hãy nhớ lại cách quan
sát bằng glOrtho() trước đây và dễ dàng nhận thấy chúng ta không thể nhìn
thấy toàn bộ hình lập phương được mà chỉ là một hình vuông, vì cách nhìn
bằng glOrtho() chỉ cho ta nhìn song song thôi.Chính vì vậy mà chúng ta
phải chuyển qua cách quan sát bằng gluPerspective(), bốn tham số của nó
được trình bày như sau:
void gluPerspective(GLdouble fovy, GLdouble aspect,
GLdouble near, GLdouble far);
Tham số đầu tiên là góc quan sát trong mặt phẳng XOZ, trong ví dụ trên
góc đó là 30độ, tham số thứ hai là tỉ lệ giữa w và h, nó bằng w/h, tham số
thứ 3 và thứ 4 thì hẳn các bạn đã quen khi quan sát bằng glOrtho().Nếu chỉ
có hàm này không thôi thì chúng ta vẫn chưa quan sát được hình lập
phương mà chúng ta vẽ. Để quan sát được chúng ta phải dùng thêm