`
s2003zy
  • 浏览: 8565 次
  • 性别: Icon_minigender_1
  • 来自: 赤峰
最近访客 更多访客>>
社区版块
存档分类
最新评论

计算机图形学学习 直线生成算法

    博客分类:
  • cg
 
阅读更多

这是我学习的笔记吧···以前学习过,但是现在准备再次认真学习下。

 

1、直线生成算法

直线DDA算法(digital Differential Analyser)

<!--[if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8</w:DrawingGridVerticalSpacing><w:View>Normal</w:View><w:Compatibility></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]-->

 

1)设直线的起点为(x1,y1)中点为(x2,y2),斜率为M

    M=(Y2-Y1)/(X2-X1)=Dy/Dx

2)直线的每一点坐标都可以由前一点的坐标变化一个增量(Dx,Dy)而得到,如下<!--[if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8</w:DrawingGridVerticalSpacing><w:View>Normal</w:View><w:Compatibility></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]-->

      Xi+1 = Xi+Dx

      Yi+1 = Yi+Dy

3)比较DX与DY的大小,设置为较小的为STEP,例如(|DX|<|DY|)那么STEP=DX  

   计算单位像素下DY(如果|DX|>|DY|就是DX)的变化  DELTAL_DY=DY/STEP

然后从起点开始画线。

bresenham算法

比较重要看书吧····打字太麻烦了·= =

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics