坏蛋个人原创,欢迎转载,转载请注明地址,坏蛋的专栏地址http://blog.csdn.net/qq634416025
void HelloWorld::tools_drawcircle(CCPoint center, float r)
{
float radius = r;
const float coef = 2.0f * (float)M_PI / r;
vector<CCPoint> vertices;
for(unsigned int i = 0;i <= r; i++) {
float rads = i*coef;
float j = radius * cosf(rads) + center.x;
float k = radius * sinf(rads) + center.y;
vertices.push_back(ccp(j, k));
}
int j = 0;
for (int i = 0; i < vertices.size(); i++)
{
int j = i + 1;
if (j < vertices.size())
{
tools_drawline(vertices.at(i), vertices.at(j));
}
}
}
void HelloWorld::tools_drawline(CCPoint s, CCPoint e)
{
target->begin();
float distance = ccpDistance(s, e);
for (int i = 0; i < distance; i++)
{
float difx = e.x - s.x;
float dify = e.y - s.y;
float delta = (float)i / distance;
bursh->setPosition(
ccp(s.x + (difx * delta), s.y + (dify * delta)));
bursh->visit();
}
target->end();
}