日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DDA算法--计算机图形学

發(fā)布時間:2023/12/9 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DDA算法--计算机图形学 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

DDA算法

1.直線方程:笛卡爾斜率截距方程 y=mx+b。
通過轉(zhuǎn)換得到對于任何沿直線給定的x增量δx,對應(yīng)的y增量δy
δy=mδx(1.1)
同樣,可以得出對應(yīng)于指定的δy的x增量δx
Δx=δy/m(1.2)
對于具有斜率絕對值|m|<1的直線,可以設(shè)置一個較小的水平偏轉(zhuǎn)電壓δx,對應(yīng)的垂直偏轉(zhuǎn)電壓可以通過(1.1)來定;而對于斜率值|m|>1的直線,則設(shè)置一個較小的垂直偏轉(zhuǎn)電壓δy,對應(yīng)的水平偏轉(zhuǎn)電壓則由(1.2)計算出來的δx來設(shè)定;對于斜率m=1的直線,δx=δy,因為水平偏轉(zhuǎn)和垂直偏轉(zhuǎn)電壓相等。在每一種情況下,都可以在指定的斷電間生成一條斜率為m的光滑直線段。
解釋:當|m|<1的時候,δy<δx,此時δy的較小,誤差較大。所以通過提供δx來求δy,同理當|m|>1的時候,δx<δy,此時δx較小,誤差較大。

2.DDA算法:線段掃描轉(zhuǎn)換算法,基于(1.1)(1.2)來計算δx或δy。在一個坐標軸上以單位間隔對線段取樣,從而確定另一個坐標軸上靠近先路徑的對應(yīng)整數(shù)值。
(1)假如斜率的絕對值小于等于1,并且起始點在左側(cè),則以單位x間隔(δx=1)取樣,并逐個計算每一個y值
yk+1=yk+m。
下標k取整數(shù)值,從第一個點1開始遞增知道最后的斷電。由于m可以是0與1之間的任意實數(shù),所以計算出的y值必須取整
(2)對于具有大于1的正斜率線段,則交換x和y的位置。也就是以點位y間隔(δy=1)取樣,順序計算每個x值
Xk+1=Xk+1/m;
此時,每一個計算出的x值要沿y掃描線舍人到最近的像素位置
(3)處理方向相反,即起始端點在右側(cè),那么δx=-1,并且
yk+1=yk+m。
(4)當斜率大于1的時候,起始端點在右邊
Xk+1=Xk+1/m;

算法可以概括為一下的過程:輸入線段兩個端點的像素位置。端點位置間水平和垂直的差值賦給參數(shù)dx和dy。絕對值大的參數(shù)確定參數(shù)steps的值。該值也是在即將畫出的這條線段上的像素數(shù)目;按照這個數(shù)值,沿線段路徑計算每一步的下一個像素位置。先繪制位置(x0,y0)的像素,然后調(diào)整每一步的x和y,獲得并逐一繪制余下的像素。假如dx的絕對值大于dy的絕對值,且x0小于xEnd,那么x和y方向的增量值分別為1和m。加入x方向的比較大,單x0大于xEnd ,那么就采用減量-1和-m來生成線段上的每個點。在其他情況下,y方向使用單位增量(或減量),x方向使用1/m的增量(或減量)。

參考資料《計算機圖形學第四版》

總結(jié)

以上是生活随笔為你收集整理的DDA算法--计算机图形学的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。