裁剪算法——多邊形裁剪/文字裁剪


 

五、多邊形裁剪

多邊形裁剪算法的輸出應該是裁剪后的多邊形邊界的【定點序列】

5.1Sutherland—Hodgeman多邊形裁剪——>【分而治之】
基本思想:
將多邊形邊界作為一個整體,每次用窗口的一條邊對要裁剪的多邊形和中間結果多邊形進行裁剪。

把平面分為兩個區域:包含有窗口區域的一個域稱為可見側;不包含窗口區域的域為不可見側。
裁剪得到的結果多邊形的頂點有兩部分組成:
    (1)落在可見一側的原多邊形頂點;
    (2)多邊形的邊與裁剪窗口邊界的交點。

根據多邊形每一邊與窗口所形成的位置關系,沿着多邊形依次處理頂點會遇到四種情況:
(1)第一點S在不可見側面,第二點P在可見側面,則交點I與點P均被加入到輸出頂點表中;

(2)第一點S和第二點P都在可見側,則點P被加入到輸出頂點表中;

(3)第一點S在可見側,而第二點P在不可見側,則交點I被加入到輸出頂點表中;

(4)第一點S和第二點P都在不可見側,則輸出頂點表中不增加任何頂點


【不足之處】
Sutherland—Hodgeman算法對凸多邊形進行裁剪可以獲得正確的裁剪結果,但是對凹多邊形進行裁剪的結果可能存在問題。


六、文字裁剪
文字裁剪包括:串精度裁剪/字符精度裁剪/筆畫/象素精度裁剪
6.1串精度裁剪

當字符串中的【所有】字符都在裁剪窗口內時,就全部保留它,否則舍棄整個字符串。

6.2字符精度裁剪

在進行裁剪時,任何與窗口有【重疊或落在窗口邊界以外】的字符都被裁剪掉

6.3筆畫/象素精度裁剪

將筆划分解成直線段對窗口坐裁剪,需要判斷字符串中各字符的哪些象素、筆畫的【哪一部分】在窗口內,保留窗口內部分,裁剪掉窗口外的部分。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM