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; }