www.pudn.com > glGraph.rar > Caky.cpp


// Caky.cpp: implementation of the CCaky class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "Caky.h" 
#include "gl/glut.h" 
#include  
#include  
 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
 
CCaky::CCaky() 
{ 
	type = 4; 
	num = 0; 
} 
 
CCaky::~CCaky() 
{ 
 
} 
 
void CCaky::SetOrigin(float x, float y,double width,double height) 
{ 
	m_origin[0] = x-width/2; 
	m_origin[1] = height/2-y; 
} 
 
void CCaky::Draw() 
{ 
	float x,y; 
	float pi; 
	glColor3f(0,0,0); 
	glBegin(GL_POINTS);//»­Ô² 
	for(pi = 0;pi < 2*3.1415926;pi += 0.01) 
	{ 
		x = m_origin[0]+60*cos(pi); 
		y = m_origin[1]+40*sin(pi); 
		glVertex2f(x,y); 
	} 
	glEnd(); 
	glBegin(GL_POINTS);//»­Ô² 
	glColor3f(0.222,0.5,1); 
	for(int j = 0;j<6;j++) 
	{ 
		for(pi = 3.1415926;pi < 2*3.1415926;pi += 0.01) 
		{ 
			x = m_origin[0]+60*cos(pi); 
			y = m_origin[1]-j+40*sin(pi); 
			glVertex2f(x,y); 
		} 
	} 
	glEnd(); 
 
	int i = 0; 
	for(pi = 0;pi < 2*3.1415926;pi += 0.01) 
	{ 
		glColor3f(blockColor[0][i],blockColor[1][i],blockColor[2][i]); 
		x = m_origin[0]+60*cos(pi); 
		y = m_origin[1]+40*sin(pi); 
		if(x == loca[0][i]) 
		{ 
			i++; 
			glColor3f(blockColor[0][i],blockColor[1][i],blockColor[2][i]); 
		} 
			glBegin(GL_LINES);//·Ö¸î 
				glVertex2f(x,y); 
				glVertex2f(m_origin[0],m_origin[1]); 
			glEnd(); 
	} 
} 
 
void CCaky::SetLoca() 
{//¼Í¼·Ö¸îµã 
	for(float pi = 0;pi < 2*3.1415926;pi += 0.01) 
	{ 
		if(rand()%100 == 0) 
		{ 
			SetBlockColor(num); 
			loca[0][num] = m_origin[0]+60*cos(pi); 
			loca[1][num++] = m_origin[1]+40*sin(pi); 
		} 
	} 
 
} 
 
void CCaky::SetBlockColor(int i) 
{ 
	blockColor[0][i] = rand()%255/255.0; 
	blockColor[1][i] = rand()%255/255.0; 
	blockColor[2][i] = rand()%255/255.0; 
}