资源简介
实现一个带参数控制五角星形状的绘制函数,并在不同位置绘制多个大小、颜色不同的五角星。(要求采用随机数生成大小和颜色,大小需要限定在一个范围内,每帧五角星也发生变化)
在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];//内圈坐标
int R=0 yd=0; //定义半径偏转角度
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()
{
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();//强制之前的绘图函数执行
}
void CALLBACK change()
{
int i;
srand(time(NULL)); //srand(int)来设种子
//i=rand()%200+1;/* i是[1,200]区间内的一个整数 */
i=rand()%200+20;
R = i ; //半径为一个随机数,也可以删掉,修改
i=rand()%200+20;
yd=i; //偏转角度
i=rand()%200;
r = i / 200.0f;//RGB颜色随机变化
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个坐标点
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个坐标点
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();
}
//主函数
void main()
{
auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
auxInitPosition(100100700700);
auxInitWindow(“CGOpenGL“);
init();
auxIdleFunc(change);//一定要在auxMainLoop前面
auxMainLoop(draw);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 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纯色五角星填充
评论
共有 条评论