-
大小: 1.23MB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-11-05
- 語言: C/C++
- 標(biāo)簽:
資源簡介
實(shí)現(xiàn)一個(gè)帶參數(shù)控制五角星形狀的繪制函數(shù),并在不同位置繪制多個(gè)大小、顏色不同的五角星。(要求采用隨機(jī)數(shù)生成大小和顏色,大小需要限定在一個(gè)范圍內(nèi),每幀五角星也發(fā)生變化)
在VC6.0的環(huán)境下利用opengl繪制五角星,半徑大小和顏色用了隨機(jī)數(shù),所以每個(gè)五角星的大小顏色實(shí)現(xiàn)了變化,也可以刪除變成靜態(tài)的,代碼里有詳細(xì)注釋,可以自己修改

代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
#include?
//添加這3條語句
#pragma?comment?(lib?“opengl32.lib“)??
#pragma?comment?(lib?“glu32.lib“)??
#pragma?comment?(lib?“glaux.lib“)??
#pragma?comment(?linker?“/subsystem:\“windows\“?/entry:\“mainCRTStartup\““?)?//這句是不讓控制臺窗體出現(xiàn),如果想要出現(xiàn),去掉即可。
const?GLfloat?Pi?=?3.1415926536f;??//定義Pi值
float?X[5]?Y[5];??//用數(shù)組聲明5組坐標(biāo),外圈坐標(biāo)
float?X1[5]?Y1[5];//內(nèi)圈坐標(biāo)
int?R=0?yd=0;??//定義半徑偏轉(zhuǎn)角度
void?init()
{
??????glClearColor(0.00.00.01.0);//黑色背景
?//?glClearColor(1.0?1.0?1.0?0.0);??//設(shè)置背景顏色
???
}
//繪制圖形函數(shù)
float?r=1g=0b=0x=0y=0;
//繪制圖形函數(shù)
void?CALLBACK?draw()
{
?????glClear(GL_COLOR_BUFFER_BIT);
????glColor3f(rgb);?//紅色
????glBegin(GL_LINE_LOOP);??//按照順序開始畫線,AI->IB->BG->...->FA
????????glVertex2f(X[0]?Y[0]);
glVertex2f(X1[0]?Y1[0]);
glVertex2f(X[1]?Y[1]);
glVertex2f(X1[1]?Y1[1]);
????????glVertex2f(X[2]?Y[2]);
glVertex2f(X1[2]?Y1[2]);
glVertex2f(X[3]?Y[3]);
????????glVertex2f(X1[3]?Y1[3]);
????????glVertex2f(X[4]?Y[4]);
????????glVertex2f(X1[4]?Y1[4]);
?????glEnd();
?????glFinish();//強(qiáng)制之前的繪圖函數(shù)執(zhí)行
}
void?CALLBACK?change()
{
int?i;?
srand(time(NULL));?//srand(int)來設(shè)種子
//i=rand()%200+1;/*?i是[1,200]區(qū)間內(nèi)的一個(gè)整數(shù)?*/
i=rand()%200+20;
R?=?i?;???//半徑為一個(gè)隨機(jī)數(shù),也可以刪掉,修改
i=rand()%200+20;
yd=i;???//偏轉(zhuǎn)角度
i=rand()%200;
r?=?i?/?200.0f;//RGB顏色隨機(jī)變化
???
i=rand()%200;
g?=?i?/?200.0f;
i=rand()%200;
b?=?i?/?200.0f;
x=i+150;
y=i+400;
?for?(int?q?=?0;?q?<=?4;?q++)
????{
????????//在外圓上初始化5個(gè)坐標(biāo)點(diǎn)
????????X[q]?=?x+R*cos((q*2)*Pi?/?5+yd);
????????Y[q]?=?y+R*sin((q*2)*Pi?/?5+yd);
????}
?for(int?w?=?0;w?<=?4;?w++)
?{
?//在外圓上初始化5個(gè)坐標(biāo)點(diǎn)
?X1[w]?=?x+0.4*R*cos((w*2)*Pi?/?5+72*Pi/360+yd);
?????Y1[w]?=?y+0.4*R*sin((w*2)*Pi?/?5+72*Pi/360+yd);
?}
draw();?????????
}
//主函數(shù)
void?main()
{
????auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
????auxInitPosition(100100700700);
????auxInitWindow(“CGOpenGL“);
????init();
auxIdleFunc(change);//一定要在auxMainLoop前面
????auxMainLoop(draw);
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????2302??2018-05-09?17:59??111\111.cpp
?????文件???????3365??2018-05-09?15:36??111\111.dsp
?????文件????????512??2018-05-09?15:37??111\111.dsw
?????文件??????41984??2018-05-09?17:59??111\111.ncb
?????文件??????48640??2018-05-09?17:59??111\111.opt
?????文件???????1832??2018-05-09?17:37??111\111.plg
?????文件?????241721??2018-05-09?17:37??111\Debug\111.exe
?????文件?????345680??2018-05-09?17:37??111\Debug\111.ilk
?????文件??????17566??2018-05-09?17:37??111\Debug\111.obj
?????文件????3701596??2018-05-09?17:21??111\Debug\111.pch
?????文件?????525312??2018-05-09?17:37??111\Debug\111.pdb
?????文件?????148480??2018-05-09?17:37??111\Debug\vc60.idb
?????文件??????77824??2018-05-09?17:37??111\Debug\vc60.pdb
?????目錄??????????0??2018-05-09?17:37??111\Debug
?????目錄??????????0??2018-05-09?17:59??111
-----------?---------??----------?-----??----
??????????????5156814????????????????????15
- 上一篇:dxf文件Entity部分解析
- 下一篇:vc6.0+opengl純色五角星填充
評論
共有 條評論