當前位置: 主頁 > 在線計算器 >
0 Comments

掃描轉換直線的DDA算法

發布于:2013-01-22  |   作者:http://www.purpyf.live  |   已聚集:人圍觀
掃描轉換直線
  掃描轉換立線是計算出落在直線上或與它臨近的一組像盆.以一定的頗色用這組像素近似替代連續的沒有寬度的筆直直線.井在屏幕上顯示的過程。屏落上的光姍點《像素)用圖1-3中的光姍點格圖表示,填色的目圈是直線上的點.未填色的回圈不是直線上的點.這些圓圈是以像索點的坐標(x,y,)為回心的小圈圈。這里暫且認為直線的端點都是盛皿坐標點且直線是一個像素寬的。
    下面是掃描轉換直線的DDA算法。
    設直線的兩個端點為(x",w)*f (x,y,),若記△x=x.一AY=Y,-Y.,則它的斜率是,二△y/Ax,那么直線上對應于x,的y坐標是:y.=mx,+B,這里B是直線的截距,Y,值四舍五人取整數值。顯然,y,..=mx,..+&m(x,+Ax)+B=mxt+從八x+B=y,+用么工若取增盆八X--I,有yi.I=Yi+m,
    可見:每增加一個像索,y就增加一個。,即可以從Y,直接得到yi.,,而不是由孫.通過直線方程y,=mx,+B求得y,."這樣便消除了算法中的乘法.如圖1一所示。上述所表示的生成直線的計算方法稱為數值徽分DDA法。從直線最左面的端點(xe,K)開始,假設T.. yc都是盆致,由于直接便用3ti"就不必計算截距這里是考慮直線科率IuI61的恃況,此時x增加1時,y的增且不大于I,在迭代的過程中.每次只寫一個像索:如果直線的科率Iml>:可將x, Y交換使Y位每增加1時.x值相應增加I/m,掃描轉換弧
    生成圈弧的最簡單算法是利用圓弧的方程了+,’二矛,取一系列不同的工,求出相應的Y.連接兩出圓弧。若函一個整圓.則只需畫出IQ:1}圓弧,再利用對稱性即可函出整目。但它用到開平方運算.計算且大,效率不高。掃描轉換弧的算法有留弧生成的中點算法、多邊形迫近法、正負法和橢圈弧生成的中點算法等.與掃描轉換直線的算法有相通之處。
 圈元屬性控制
    1.線寬控制
    實際繪圈常用到有寬度的直線和曲線。要生成有寬度的線.可用帶有一定寬度的腳子沿,單像索寬的線的中心移動。這個劇子可以是線形的成正方形的.正方形的別子效果較好。實現正方形劇子的算法是將正方形的中心對準單像索寬直線上的每個像索.然后將正方形中全部像素置成直線的翻色。方法很簡單.但會重寫各個像索.因相鄰兩個正方形中像素可能會重盛。為通免這一點,可采用區城坡充的方法來生成有寬度的直線和弧線。
    2.映型控制
    線型是所有圖元都具有的屬性,在工程制圖中應用廣泛,如實線、盛線、點畫線等。線型控制一般用一個位屏蔽器來完成.如可用一個32位的整致表示一叫立申,當像素對應的位為I時顯示該像歡.為0時不顯示該像素。用這樣的整數控翻線奧時,線型必須以32個像眾為周期龍復。
填充基本圖形的填充有兩個步獲,一是確定應墳充的像眾.二是坡充翻色。確定像索是否被填充的方法是用順序的掃描線與圖形邊界相交,并對兩交點間的像索從左到右坡充。
    矩形的填充
    填充四條邊是水平或垂直的矩形比較容易,與矩形相交的順序掃描線從左邊界掃到右邊界。在此過程中.把遇到的每個像炭峨以同樣的翻色。
    2.多邊形補充
    一般多邊形的補充過程.對每條掃描線都需要執行以下4個步聚:
    (I)求該掃描線與多邊形每條邊的交點。
    (2)對所有的交點按從左到右以x通增的順序排序。
    (3)把排序的交點進行配對。每對交點代表掃描線與多邊形的一個相交區間.該區間的點屬于多邊形的內部點。
    (4)將相交區間內的像東點形成多邊形的顏色.把區間外的像眾點畫成背爪的顏色。這是多邊形填充的掃描轉換算法。還有邊緣琪充算法、種子墳充算法等.
    3.圖案填充
    填充方式分為均勻墳充方式、位圖不透明方式、位圖進明方式、像素圖填充方式。前面所述的都是均勻填充方式,即將邊界內部的像設置成同一種頗色。后3種方式只需將前述算法稍加修改即可實現。
    當按照位圖不透明方式填充時。若像索對應的位圖單元的值為.倒仍用前.色顯示該像索;若為0.則以霄景色顯示該像歡。
    當按照位圖透明方式填充時,若像索對應的位圖單元的值為:俐仍用前景色顯示該像炭;若為0.期不改變屏幕上該像素的妞色。
    當按照像素圖方式摘充時.以像索對應的像歡圖單元的翻色顯示該像炭。
 字符表示和翰出
 字符是圖形中的一個重要組成部分,包括字母、致字、僅字和標點等符號。目前有^scu碼和漢語代碼即《信息交換用漢字編碼宇符集荃本集》( GB 2312-1980 ),
   
 
 
標簽:                   喜歡:收藏
山西快乐10分前三走势图带连线 买了壳公司怎么赚钱 有什么可以用步数赚钱的软件 黑色沙漠怎么贸易赚钱 陕西麻将可以开挂吗 硬币兑换机器怎么赚钱 挂机赚钱软件安装包v6 单机捕鱼免费版 年轻人除了工作怎么赚钱 博客可赚钱 微信捕鱼达人h5弹头怎么打 淘宝卖大闸蟹赚钱吗 新倩女幽魂打宝队赚钱 新世佳彩票游戏 铁骑冲锋怎样赚钱 微信可以用什么功能来来赚钱 打5元10元麻将算赌博