使用OpenGL生成乙個簡單的莫比烏斯環

2021-09-22 22:27:25 字數 1815 閱讀 7973

生成的結果如下,初學者,只是使用了一些基礎的函式:

**如下:

#include#includeusing namespace std;

#include//莫比烏斯環座標生成巨集

#define mobiusx(u,v) ((1+(v)*cos((u)/2)/2)*cos(u))

#define mobiusy(u,v) ((1+(v)*cos((u)/2)/2)*sin(u))

#define mobiusz(u,v) ((v)*sin((u)/2)/2)

const int p1 = 8, p2 = 8;

const double pi = 3.1415926;//圓周率pi

//儲存繪製點座標

glfloat cp0[p1][p2][3];//點座標陣列

glfloat light_ambient = ;//環境光

glfloat light_diffuse = ;//散射光

glfloat light_specular = ;//鏡面光

glfloat light0_position = ;//0號光源位置

glfloat light1_position = ;//1號光源位置

//莫比烏斯環函式宣告

void disinit();//顯示初始化

void displayface();//繪製圖形

void reshap(glsizei w, glsizei h);//視窗修正

int mobius(int argc, char* ar**);//莫比烏斯環生成函式

int main(int argc, char* ar**)

int mobius(int argc, char* ar**)

void disinit()

}glclearcolor(0, 0, 0, 0);//黑色背景

//設定0號光源

gllightfv(gl_light0, gl_ambient, light_ambient);

gllightfv(gl_light0, gl_diffuse, light_diffuse);

gllightfv(gl_light0, gl_specular, light_specular);

gllightfv(gl_light0, gl_position, light0_position);

//設定1號光源

gllightfv(gl_light1, gl_ambient, light_ambient);

gllightfv(gl_light1, gl_diffuse, light_diffuse);

gllightfv(gl_light1, gl_specular, light_specular);

gllightfv(gl_light1, gl_position, light1_position);

glenable(gl_lighting);//使用光照

glenable(gl_light0);//開啟0號光源

glenable(gl_light1);//開啟1號光源

//讓圖形可以反射光

glenable(gl_auto_normal);

//啟用深度測試

glenable(gl_depth_test);

}void displayface()//繪製圖形

void reshap(glsizei w, glsizei h)//視窗修正

乙個簡單的OpenGL程式

乙個簡單的opengl程式 cheungmine 2009 2 這是乙個windows控制台程式,建立乙個空專案,把下面的檔案新增進去,編譯即可。需要更改的是路徑 依存的庫目錄 win opengl32 inc gl.h,glu.h,glut.h lib glu32.lib,opengl32.lib...

在MFC下使用OpenGL的乙個簡單的例子

最近開始準備做opengl方面的東西,萬事開頭難,真是體會頗深,簡直就是寸步難行。有時候發各帖子到網上,不停地重新整理,希望能有高手指點,可是,每次收穫並不是太大。也許,每個程式設計師都有乙個痛苦的過程,我當然不能例外了。不過,痛苦之後有收穫才是最大的快樂。正因為這個原因,當我度過了自己的第一難關時...

乙個openGL的函式

最近挺忙很久沒寫東西。目前在寫一些opengl的東西,對於這個在3年前接觸過但是沒學好的語言一直耿耿於懷,其實很喜歡opengl。而且最近也沒事就一直開始寫著,寫opengl檢視模型的時候其實很重要的乙個東西就是它內部的矩陣棧。所以寫了乙個函式,專門用來輸出日誌,我自己覺的挺好用。這個函式的作用是專...