OpenGL鍵盤操作和動畫

2021-08-25 20:39:09 字數 1416 閱讀 2221

前面三篇文章已經把opengl的程式設計基本結構描述完畢。以後會在這個基礎上逐漸深化,不斷增添新內容。這一篇是講述

鍵盤操作和動畫基礎(實際還差的遠哪)。只是個簡單的能由使用者控制的動畫,讓物體前後移動,左右旋轉。是我們自

己的第乙個quake!當然這個版本誰買誰上當,呵呵。

這篇的另乙個目的就是加深前面對於callback函式的認識以及對於變換的直觀解釋,任何變換你都可以從螢幕上通過自

己的操作看出來:

我只把和以前變化的部分標記中文解釋

#include #include #include #pragma comment(lib, "opengl32.lib")

#pragma comment(lib, "glu32.lib")

#pragma comment(lib, "glaux.lib")

#pragma warning(disable : 4244) // mips

#pragma warning(disable : 4136) // x86

#pragma warning(disable : 4051) // alpha

void myinit(void);

void callback display(void);

void callback reshape(glsizei w,glsizei h);

//注意到樂嗎?這裡新加樂4個callback函式

//類似display() reshape(),也由主函式呼叫它們

//實現對鍵盤輸入的響應

void callback left(void);//按 left

void callback right(void);//按 right

void callback up(void);//按 up

void callback down(void);//按 down

//兩個全域性變數,z_motion用來控制物體遠近

//rotate用來控制物體旋轉

static int z_motion=0,rotate=0;

void myinit(void)

void callback reshape(glsizei w,glsizei h)

void draw(void)

void callback display(void)

void callback left(void)

void callback right(void)

void callback up(void)

void callback down(void)

void main(void)

//end of sample

如果執行這個程式會發現有較明顯的閃爍感,這是單快取模式

造成的以後會講到動畫應採用雙快取模式,這樣可以避免閃爍

OpenGL 鍵盤控制

glut允許我們編寫程式,在裡面加入鍵盤輸入控制,包括了普通鍵,和其他特殊鍵 如f1,up 在這一章裡我們將學習如何去檢測哪個鍵被按下,可以從glut裡得到些什麼資訊,和如何處理鍵盤輸入。處理按鍵訊息,我們必須使用glut通知視窗系統,當某個鍵被按下時,哪個函式將完成所要求的操作。我們同樣是呼叫乙個...

Winform 通過鉤子監控鍵盤操作和滑鼠移動

從網上找的乙個解決辦法,可以通過鉤子的方式實現,這裡記錄一下。監控鍵盤鉤子 public class keyboardhook dllimport kernel32.dll public static extern intptr getmodulehandle string lpmodulename...

OpenGL 動畫的製作

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!include 太陽 地球和月亮 假設每個月都是30天 一年12個月,共是360天 static int day 200 day的變化 從0到359 void mydisplay void void myidle void int main int...