NeHe OpenGL教程 第四課 旋轉

2021-05-28 02:21:02 字數 1672 閱讀 1664

在上一課中,我們學習了如何給三角形和正方形著色。在這一課中,我們將學習如何沿一條座標軸旋轉這些著色物體。使用上節課的**,我們將在其中新增一些新的**。我將重寫下面這部分**,以便於你知道哪些是新新增的**,哪些是應該替換的**。

我們從新新增的兩個變數開始,它們是用來記錄每個物體的旋轉角度的。在程式的最上面,其它的全域性變數下面新增這兩個變數。 'bool fullscreen=true;'語句下面將有兩行新新增的**。我們定義了兩個浮點型的變數,它們能精確地控制物體的旋轉。浮點型變數可以使用小數。意味著我們不會被限制於只能使用1,2,3來表示角度,我們可以使用在1.1, 1.7, 2.3,甚至 1.015來表示更精確的角度值。你會發現浮點型變數在opengl程式設計中非常重要。rtri變數用來控制三角形的旋轉,rquad變數用來控制正方形的旋轉。

#include // windows標頭檔案

#include // opengl32庫標頭檔案

#include // glu32庫標頭檔案

#include // glaux庫標頭檔案

hglrc      hrc=null;// 永久的渲染上下文( rendering context)

hdchdc=null;// 私有的gdi裝置上下文( gdi device context)

hwndhwnd=null;// 獲得我們視窗的控制代碼

hinstancehinstance;// 獲得應用程式的例項

boolkeys[256];// 用於鍵盤行為的陣列

bool

active=true;// 窗**動標記,預設設定為true

boolfullscreen=true;// 全屏標記,預設設定為全屏

glfloat     rtri;// 三角形的旋轉角度 ( 新加** )

glfloat     rquad;// 正方形的旋轉角度 (新加**)

現在我們需要修改drawglscene() 函式的**。我將重寫整個函式。以便於你能知道,和以前的**相比,**做了修改。我將會解釋為什麼有些**需要改變,以及新新增的**的用途。下面這部分**和上節課的完全一樣。

int drawglscene(glvoid)//我們繪製圖形的地方

最後,修改一下切換視窗\全屏模式部分的**,以便於視窗有乙個合適的標題。

if(keys[vk_f1])//如果f1被按下

}

NeHe OpenGL第四課 旋轉

nehe opengl第四課 旋轉 旋 在這一課裡,我將教會你如何旋轉三角形和四邊形。左圖中的三角形沿y軸旋轉,四邊形沿著x軸旋轉。上一課中我教給您三角形和四邊形的著色。這一課我將教您如何將這些彩色物件繞著座標軸旋轉。其實只需在上節課的 上增加幾行就可以了。下面我將整個例程重寫一遍。方便您知道增加了...

Android OpenGL教程 第四課

android opengl 教程 第四課旋 在這一課裡,我將教會你如何旋轉三角形和四邊形。左圖中的三角形沿y軸旋轉,四邊形沿著x軸旋轉。我們增加兩個變數來控制這兩個物件的旋轉。這兩個變數加在程式的開始處其他變數的後面。它們是浮點型別的變數,使得我們能夠非常精確地旋轉物件。浮點數包含小數字置,這意味...

CMake教程 安裝(第四課)

cmake教程版本號 3.16.3 github示例 現在我們可以為專案新增安裝規則和測試支援了 庫的安裝,我們需要安裝庫和標頭檔案 程式的安裝,我們需要安裝可執行程式和配置標頭檔案 對應的cmakefile.txt如下 庫的安裝 install targets sayhello destinati...