坏蛋个人原创,欢迎转载,转载请注明地址,坏蛋的专栏地址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(); }