資源簡介
文件直接使用VC6.0打開工作空間調試運行,利用OpenGL繪制的五角星并填充顏色,代碼簡單好理解,適合新手學習

代碼片段和文件信息
#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\““?)?//這句是不讓控制臺窗體出現,如果想要出現,去掉即可。
const?GLfloat?Pi?=?3.1415926536f;??//定義Pi值
float?X[5]?Y[5];??//用數組聲明5組坐標,外圈坐標
float?X1[5]?Y1[5];//內圈坐標
float?X2[5]?Y2[5];
int?R=150?;??//定義半徑偏轉角度
void?init()
{
??????glClearColor(0.00.00.01.0);//黑色背景
?//?glClearColor(1.0?1.0?1.0?0.0);??//設置背景顏色
???
}
//繪制圖形函數
float?r=1g=0b=0x=0y=0;
//繪制圖形函數
void?CALLBACK?draw()
{
int?x=250??y=400;
X2[0]=x;Y2[0]=y;
for?(int?q?=?0;?q?<=?4;?q++)
????{
????????//在外圓上初始化5個坐標點
????????X[q]?=?x+R*cos((q*2)*Pi?/?5);
????????Y[q]?=?y+R*sin((q*2)*Pi?/?5);
????}
for(int?w?=?0;w?<=?4;?w++)
?{
?//在外圓上初始化5個坐標點
?X1[w]?=?x+0.4*R*cos((w*2)*Pi?/?5+72*Pi/360);
?????Y1[w]?=?y+0.4*R*sin((w*2)*Pi?/?5+72*Pi/360);
?}
?????glClear(GL_COLOR_BUFFER_BIT);
????glColor3f(1.00.00.0);?//紅色
????glBegin(GL_TRIANGLES);??//按照順序開始畫線,AI->IB->BG->...->FA
//1
glVertex2f(X2[0]?Y2[0]);
????????glVertex2f(X[0]?Y[0]);
glVertex2f(X1[0]?Y1[0]);
//3
glVertex2f(X2[0]?Y2[0]);
glVertex2f(X[1]?Y[1]);
glVertex2f(X1[1]?Y1[1]);
//5
glVertex2f(X2[0]?Y2[0]);
glVertex2f(X[2]?Y[2]);
glVertex2f(X1[2]?Y1[2]);
//7
glVertex2f(X2[0]?Y2[0]);
glVertex2f(X[3]?Y[3]);
????????glVertex2f(X1[3]?Y1[3]);
//9
glVertex2f(X2[0]?Y2[0]);
glVertex2f(X[4]?Y[4]);
????????glVertex2f(X1[4]?Y1[4]);
????glColor3f(1.01.00.0);?//黃色
????glBegin(GL_TRIANGLES);
//2
glVertex2f(X2[0]?Y2[0]);
glVertex2f(X1[0]?Y1[0]);
glVertex2f(X[1]?Y[1]);
//4
glVertex2f(X2[0]?Y2[0]);
glVertex2f(X1[1]?Y1[1]);
????????glVertex2f(X[2]?Y[2]);
//6
glVertex2f(X2[0]?Y2[0]);
glVertex2f(X1[2]?Y1[2]);
glVertex2f(X[3]?Y[3]);
//8
glVertex2f(X2[0]?Y2[0]);
glVertex2f(X1[3]?Y1[3]);
????????glVertex2f(X[4]?Y[4]);
//10
glVertex2f(X2[0]?Y2[0]);
glVertex2f(X1[4]?Y1[4]);
glVertex2f(X[0]?Y[0]);
?????glEnd();
????glFinish();//強制之前的繪圖函數執行
}
//主函數
void?main()
{
????auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
????auxInitPosition(100100700700);
????auxInitWindow(“CGOpenGL“);
????init();
// auxIdleFunc(change);//一定要在auxMainLoop前面
????auxMainLoop(draw);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????233557??2018-05-23?17:02??雙色五角星填充\Debug\star2.exe
?????文件?????326516??2018-05-23?17:02??雙色五角星填充\Debug\star2.ilk
?????文件??????18303??2018-05-23?17:02??雙色五角星填充\Debug\star2.obj
?????文件????3689364??2018-05-23?17:02??雙色五角星填充\Debug\star2.pch
?????文件?????484352??2018-05-23?17:02??雙色五角星填充\Debug\star2.pdb
?????文件?????148480??2018-06-06?16:27??雙色五角星填充\Debug\vc60.idb
?????文件??????77824??2018-05-23?17:02??雙色五角星填充\Debug\vc60.pdb
?????文件???????2646??2018-05-23?17:02??雙色五角星填充\star2.cpp
?????文件???????3389??2018-05-17?21:08??雙色五角星填充\star2.dsp
?????文件????????518??2018-05-17?21:08??雙色五角星填充\star2.dsw
?????文件??????41984??2018-06-06?16:28??雙色五角星填充\star2.ncb
?????文件??????48640??2018-06-06?16:28??雙色五角星填充\star2.opt
?????文件????????244??2018-06-06?16:27??雙色五角星填充\star2.plg
?????目錄??????????0??2019-03-29?10:20??雙色五角星填充\Debug
?????目錄??????????0??2019-03-29?10:20??雙色五角星填充
-----------?---------??----------?-----??----
??????????????5075817????????????????????15
評論
共有 條評論