图形学第三次作业

#include  <windows.h> //此头文件一定要放在最前
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>
#include  <stdio.h>
#include  <stdlib.h>
#include  <math.h>
#include   <iostream>  
#include   <conio.h>
using   namespace   std;
//添加这3条语句
#pragma comment (lib, "opengl32.lib") 
#pragma comment (lib, "glu32.lib") 
#pragma comment (lib, "glaux.lib")
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
//这句是不让控制台窗体出现,如果想要出现,去掉即可。

float root2 = sqrt(2);
float base = 2*3.14159/10;

void drawangle(int x0,int y0,int x1,int y1,int x2,int y2)
{

	glBegin(GL_TRIANGLES);
	glVertex2i(x0,y0);
	glVertex2i(x1,y1);
	glVertex2i(x2,y2);
	glEnd();
}
void drawfive(int R1,int R2,int angle,int x,int y)
{
     int i;
	 int x0,y0,x1,y1;
	 float a1 = cos(angle-0.01);
	 float a2 = sin(angle-0.01);
	 x0 = x + R1*a1;
	 y0 = y + R1*a2;
	 for(i=1;i<=10;i++)
	 { 
		   float b1 = cos(angle+base*i);
		   float b2 = sin(angle+base*i);
		   if(i%2==1)
		   {
               glColor3f(1,0,0);
			   x1 = x+R2*b1;
			   y1 = y+R2*b2;
               
		   }
		   else
		   {
			   glColor3f(1,1,0);
		       x1 = x+R1*b1;
			   y1 = y+R1*b2;
		   }
		   drawangle(x,y,x0,y0,x1,y1);
		   x0 = x1;
		   y0 = y1;
	} 

}
void CALLBACK draw()
{
     glClear(GL_COLOR_BUFFER_BIT);
     drawfive(75,36,0,200,200);
   	 glFinish();
}

void init()
{
      glClearColor(0.0,0.0,0.0,1.0);//黑色背景
}

int main(int argc, char* argv[])
{
    auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
    auxInitPosition(0,0,500,500);
    auxInitWindow("Project 3");
    init();
    auxMainLoop(draw);
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值