OpenGL中点画圆法绘制抛物线y=ax²+bx+c

安装glut库

这篇博客的编译器是VS2017,vs2019的安装步骤也一样:glut

中点画圆法

这篇博客写得挺详细的,也介绍了速度更快的Bresenham算法:中点画圆法

思路分析

首先,利用导数找出斜率为1的点,从这点开始将曲线分开两段处理,斜率小于1的曲线利用y作为增量计算,斜率大于1的曲线利用x作为增量计算。
其次,由于 y = a x 2 + b x + c y=ax^2+bx+c y=ax2+bx+c关于函数对称轴 x = − a 2 b x=\cfrac{-a}{2b} x=2ba对称,所以只要画出右边的图像,再进行取对称点操作就能得到左边图像,从而拼出整个图像。
注意 y = a x 2 + b x + c y=ax^2+bx+c y=ax2+bx+c有3个参数,下面两种参数变化的情况会对程序产生较大影响

情况分析

a=0

此时,曲线会退化成直线 y = b x + c y=bx+c y=bx+c

a=0且b=0

此时,曲线会退化成一条平行于x轴的直线 y = c y=c y=c

判别式推导

在这里插入图片描述
原函数变为 f ( x , y ) = a x 2 + b x + c − y f(x,y)=ax^2+bx+c-y f(x,y)=ax2+bx+cy
0 < x < − a 2 b 0<x<\cfrac{-a}{2b} 0<x<2ba时,利用y作为增量
对任意一点 d 0 ( x p , y p ) d_0(xp,yp) d0(xp,yp),有
d p = F ( M ) = F ( x p + 1 , y p + 0.5 ) = a ( x p + 1 ) 2 + b ( x p + 1 ) + c − ( y p + 0.5 ) d_p=F(M)=F(x_p+1,y_p+0.5)=a(x_p+1)^2+b(x_p+1)+c-(y_p+0.5) dp=F(M)=F(xp+1,yp+0.5)=a(xp+1)2+b(xp+1)+c(yp+0.5)
d p < 0 d_p<0 d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值