zoukankan      html  css  js  c++  java
  • [图形学]光栅直线算法(转)

    DDA算法(数值微分法)

             浮点加法,依赖于斜截式

             具体方法:每次x增加一个单位,y根据斜截式计算出相应的值,并且四舍五入取整(先加0.5,再下取整)

       

            复杂度:一次加法,一次(或2次)取整。

            缺陷:斜率过大时,表达直线的点过少。

     中点画线算法

             整数加法,依赖于一般式

             已知直线方程的一般式:Fx,y=0

             坐标系中,在直线上方的满足Fx,y> 0,在直线下方满足Fxy<0

            具体方法:

           

          将(x0+1y0)(x0+1y0+1)中点坐标带入Fx,y)得到d

          若d>=0,则yy0+1,否则取y0

          求d的递推式:

           1di < 0

         

           2di > =0

            

          其中d0 = A + B/2

    Bresenham算法

           d:直线与最近光栅网格点的距离

           

             改进1:计算e = d - 0.5,看e的正负

            

            改进2:用e*2来代替e

           

  • 相关阅读:
    MySQL Backup mysqldump 常用选项与主要用法--转发
    openssl 之RSA加密
    Windows 之Dll/lib导出
    缓存雪崩、击穿、穿透
    时间复杂度
    分布式事务
    mysql主从复制与读写分离
    什么是消息队列?
    微服务架构演化
    高并发问题常规思路
  • 原文地址:https://www.cnblogs.com/jpfss/p/7044078.html
Copyright © 2011-2022 走看看