zoukankan      html  css  js  c++  java
  • 2.4.2 圆形思维的起点——朴素的软光栅(2)

    圆的扫描转换

    可以把问题简化为如何画一个在原点的圆。其他位置的圆可以通过平移原点位置同样大小的圆得到。

    八分法画圆

    利用简单方程

     利用极坐标方程

    中点Bresenham画圆法

    中点Bresenham算法的核心思想:把上下两个相邻像素坐标的中点带入解析函数,根据结果的正负,选择被在圆上的那个像素。移动x坐标所在位置,再选择两个相邻像素坐标的中点反复执行以上步骤。前后两次的中点坐标带入解析函数的差是一个固定增量,所以不需要每次带入解析函数,只需要增加增量再比较即可。

    算法步骤

     

    一点思考:只考虑第一象限靠上的八分之一圆,保证了斜率的绝对值小于1,此部分的最大位移方向在x轴上。

    椭圆又如何?椭圆的中点Bresenham算法

    分界点:最大位移方向x轴和y轴方向的点。

    引入法向量找到分界点

     同样引入中点位置帮助判别候选点的实际位置

    第一象限椭圆上半部分

     

     

  • 相关阅读:
    hdu 4638 Group 线段树
    hdu 4635 Strongly connected 强连通分量
    hdu 4604 Deque
    hdu 1000 A + B Problem
    数组相关
    文本文件相关
    硬件电路中VCC,VDD,VEE,VSS有什么区别
    VIPM链接LabVIEW问题
    Touch实现轻扫
    touchesMoved 实现拖拽
  • 原文地址:https://www.cnblogs.com/BoysCryToo/p/15739996.html
Copyright © 2011-2022 走看看