OpenGL八对称和内接正多边形逼近画圆法

博客展示了用C语言实现圆绘制的代码。包含八对称法绘制圆的函数,通过循环计算坐标并调用绘制点的函数;还展示了内接正多边形逼近圆的方法,将角度转换为弧度,利用三角函数计算顶点坐标,最终实现圆的绘制。

//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();
//}
 

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值