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

    圆的扫描转换

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

    八分法画圆

    利用简单方程

     利用极坐标方程

    中点Bresenham画圆法

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

    算法步骤

     

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

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

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

    引入法向量找到分界点

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

    第一象限椭圆上半部分

     

     

  • 相关阅读:
    css3 实现水平或垂直布局
    css div 细边框
    css scroll bug
    F和弦大横按
    简单分析beyond作曲
    [编织消息框架][设计协议]优化long,int转换
    nginx 限制ip
    nginx注册成服务
    nginx 添加win 服务
    sqlserver 使用维护计划备份
  • 原文地址:https://www.cnblogs.com/BoysCryToo/p/15739996.html
Copyright © 2011-2022 走看看