码迷,mamicode.com
首页 > 编程语言 > 详细

计算机图形学 - 抛物线的中点生成算法

时间:2016-01-10 15:42:00      阅读:652      评论:0      收藏:0      [点我收藏+]

标签:

算法描述:

  对于抛物线,先分析一种最为特殊的情况,就是对称轴为y轴,且经过坐标原点。如图所示:

技术分享

 

  

  只要生成了这样一个抛物线,那么一般情况下的抛物线都可以凭借这种特殊情况进行平移、旋转得到。而由于该特殊情况下的抛物线在y轴两侧是对称的,所以只需要解决第一象限内的抛物线的生成就能够得到完整的图像。
  那么如何得到这种特殊情况下的抛物线

技术分享

  由上图可知,假设一点在抛物线第一象限上从原点开始移动,并过该点A作抛物线的切线,那么根据切线的斜率k=1可以将该象限内的抛物线分为两个部分,一部分为点A左边,切线斜率全部小于1;另外一部分为点A右边,切线斜率全部大于1。
  根据之前中点生成算法的思想可知,在左半部分,每次生成可将X坐标递增1,根据决策参数判断Y坐标是否增加  

技术分享区域1

  在右半部分,每次生成可将Y坐标递增1,根据决策参数判断X坐标是否增加。

技术分享

区域2

  接下来就是决策参数的推导:

  抛物线方程为技术分享,则该曲线方程有两种形式:

  技术分享

 

 

  区域1:

  技术分享

  当技术分享时:下一个点的坐标应该选择技术分享,此时:

  技术分享

  当技术分享时:下一个点的坐标应该选择技术分享,此时:

  技术分享

  

  区域2:

  技术分享

  当技术分享时:下一个点的坐标应该选择技术分享,此时:

  技术分享

  当技术分享时:下一个点的坐标应该选择技术分享,此时:

  技术分享

 

  详细代码:Computer Graphics - code_1

   生成结果:

  技术分享

计算机图形学 - 抛物线的中点生成算法

标签:

原文地址:http://www.cnblogs.com/xd-g/p/5118522.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!