//void cirpot(int x1, int y1, int x, int y) {
// glBegin(GL_POINTS);
// glVertex2i(x1 + x, y1 + y);
// glVertex2i(x1 - x, y1 + y);
// glVertex2i(x1 + x, y1 - y);
// glVertex2i(x1 - x, y1 - y);
//
// glVertex2i(x1 + y, y1 + x);
// glVertex2i(x1 -y, y1 + x);
// glVertex2i(x1 + y, y1 -x);
// glVertex2i(x1 -y, y1 -x);
// glEnd();
// glFlush();
// Sleep(100);
//}
//void circle_8(int x1, int y1, int r) { //八对称 ok!!!!!!!!
// int x, y;
// for (x = 0; x <= sqrt(2) / 2 * r; x++) {
// y = (int)sqrt(r * r - x * x);
// cirpot(x1, y1,x,y);
// }
//}
//void myDisplay(void) {
// ///////////////////////////////circle_8(300, 300,100);///////八对称 ok!!!!!!!!
// //内接正多边形逼近圆
// int x0 = 250, y0 = 250, r = 100;
// int i, n = 100;
// float st;
// glClear(GL_COLOR_BUFFER_BIT);
// st = (360.0 / n) * (3.14 / 180);//角度转换为弧度
// glColor3f(0.0f, 0.0f, 0.0f);
// glBegin(GL_LINE_LOOP);
// for (int i = 0; i < n; i++) {
// glVertex2f(x0 + r * cos(i * st), y0 + r * sin(i * st));
// }
// glEnd();
// glFlush();
//}
博客展示了用C语言实现圆绘制的代码。包含八对称法绘制圆的函数,通过循环计算坐标并调用绘制点的函数;还展示了内接正多边形逼近圆的方法,将角度转换为弧度,利用三角函数计算顶点坐标,最终实现圆的绘制。
2342





