A. sierpinski地毯的分形維數是多少
3 Gouraud顏色漸變203
10.1.1 演算法原理56
3.1.2.3.3.3.7.1.2.1.1.4 分形維數的定義158
8.3.2.4 B樣條曲線的性質146
7.2.5 C字曲線168
8.1 中點分割直線裁剪演算法原理103
5.1.4 小結52
習題252第3章 基本圖形的掃描轉換55
3.1.4.1 三視圖115
6.2 材質模型和光照模型205
10.2.2 隨機掃描顯示器8
1.4 Peano-Hilbert曲線171
8.5.2 Koch曲線161
8.1 紋理定義209
10.3 邊界條件133
7.3.6.4 Bezier曲線137
7.3 邊緣填充演算法80
4.7.2.2.2 MFC上機操作步驟28
2.3 旋轉變換矩陣92
5.2.1 平移變換109
6.2.4.2 Koch曲線170
8.4.4.0繪圖基礎21
2.4 四鄰接點填充演算法和八鄰接點填充演算法84
4.1.5.5 透視投影分類125
6.2 圓的掃描轉換57
3.2 比例變換矩陣91
5.3 橢圓的掃描轉換60
3.3 Hermite樣條曲線135
7.2 二次B樣條曲線143
7.5 小結85
習題485第5章 二維變換和裁剪89
5.2 雙三次Bezier曲面的定義141
7.4 連續性條件131
7.3.5.1 規范化齊次坐標89
5.3 漫反射光模型206
10.1 直線的掃描轉換55
3.3 真實感圖形顯示技術19
1.1.1.3 計算機圖形學的相關學科5
1.2.2 構造中點偏差判別式56
3.1 填充原理82
4.3.5 楓葉生成182
8.3.4 區域填充演算法82
4.2 構造上半部分I中點偏差判別式62
3.1.2 有效邊表填充演算法75
4.1.2.2 填充過程80
4.2.3 二維復合變換95
5.6.2.2 分形的基本特徵157
8.4.4 反走樣技術66
3.3.5 直線距離加權反走樣演算法67
3.5.2 IFS175
8.2 TestView.5.7 三維顯示器15
1.5.4.2 曲面體消隱演算法192
9.1 Cantor集160
8.2.3 演算法的幾何意義104
5.2.2.2 構造距離判別式69
3.5.4 邊表79
4.5.3 三次B樣條曲線144
7.1 計算機圖形學的應用領域1
1.3 交點計算公式102
5.1.3 分形的定義158
8.2 三次參數樣條曲線132
7.5 Bezier曲面141
7.3.4 區域填充74
4.2.1 L系統文法169
8.2 畫家演算法197
9.1 實面積圖形的概念72
4.1 顏色模型201
10.4.6 等離子顯示器15
1.1 Bezier曲線的定義137
7.5 錯切變換112
6.3.3 窗視變換矩陣100
5.7 梁友棟-Barsky直線裁剪演算法103
5.1.3 L系統模型169
8.1.1.4 設備上下文的調用和釋放50
2.4.2 多邊形的表示73
4.3 對象的動態建立和釋放24
2.5 透視變換120
6.2 坐標系變換121
6.2 構造中點偏差判別式59
3.6 中點分割直線裁剪演算法103
5.1 平移變換矩陣91
5.4.1 多邊形的定義73
4.1 填充原理75
4.3 直視儲存管顯示器8
1.2 曲線曲面的表示形式130
7.2.7.1.1 計算機輔助設計1
1.3 分形草171
8.2.3.1 凸多面體消隱演算法190
9.3 用戶坐標繫到觀察坐標系的變換122
6.3.1 類和對象21
2.2 計算機圖形學的概念4
1.7.3 四連通域和八連通域83
4.1.4 二維圖形裁剪98
5.1.1 樣條曲線曲面130
7.3.4 繼承與派生25
2.2 三維基本幾何變換矩陣109
6.1.5.1.5 小結198
習題9198第10章 真實感圖形201
10.2 環境光模型206
10.2 系數求解133
7.3 TestView.1 交互技術18
1.4.7.4.4.4 二維幾何變換90
5.1 圖形的幾何信息和拓撲信息187
9.2 中點計算公式103
5.1.5.4 構造下半部分II中點偏差判別式64
3.3 Bezier曲線的可分割性139
7.3 相對於任意方向的二維幾何變換96
5.4 觀察坐標繫到屏幕坐標系的變換124
6.1 演算法原理61
3.5 錯切變換矩陣94
5.2 構造函數和析構函數22
2.4 反射變換111
6.1 Bezier曲面的定義141
7.4.2.2 紋理映射210
10.1 B樣條曲線的定義143
7.3.3 多邊形的填充74
4.3.4 IFS迭代函數系統模型174
8.4.3 隱線演算法190
9.3 雙三次B樣條曲面的連續性150
7.3 CDC類的主要繪圖成員函數34
2.3.2 窗口和視區及窗視變換99
5.2 二維圖形基本幾何變換矩陣91
5.2 四鄰接點和八鄰接點82
4.5.1.2.1 梁友棟演算法原理103
5.4 光柵掃描顯示器9
1.2.7.5 Cohen-Sutherland直線裁剪演算法101
5.1 編碼原理101
5.2.1.1 Z-Buffer演算法194
9.2.2 三維幾何變換108
6.1 三維變換矩陣108
6.2 比例變換109
6.6.1 面向對象程序設計基礎21
2.2 造型技術18
1.6 Caley樹168
8.1 演算法原理67
3.3.4 投影變換115
6.6.1 圖形幾何變換基礎89
5.1.2.1.2 Bezier曲線的性質139
7.2.5.8 小結152
習題7152第8章 分形幾何156
8.5.6.3.4.4 Sierpinski墊片180
8.4 鏡面反射光模型207
10.5 下半部分II的遞推公式64
3.3 基本繪圖函數31
2.2.3 紋理映射209
10.1.3.5 VC++繪制圖形的幾種方法51
2.2 計算機藝術1
1.5.3.6.1 陰極射線管7
1.7 B樣條曲面149
7.3 Koch曲線178
8.3.3 計算機化69
3.7.h文件210
10.2 基本圖形的數據結構187
9.4 OpenGL簡介210
10.cpp文件213
10.6 B樣條曲線142
7.1 分形和分維156
8.4.3.6 小結69
習題369第4章 多邊形填充72
4.1.2.3 虛擬現實3
1.5.1 基本概念201
10.4 Sierpinski墊片、地毯和海綿164
8.3 遞推公式60
3.4.3 Peano-Hilbert曲線162
8.2 雙三次B樣條曲面的定義149
7.4.1 分形的誕生156
8.1.1.4.4 計算機輔助教學3
1.6 小結127
習題6128第7章 自由曲線和曲面130
7.4.1.2.2 演算法分析104
5.1 案例效果210
10.5.2 RGB顏色模型202
10.1 CDC類結構和GDI對象32
2.4 計算機圖形學的確立和發展5
1.1 三維幾何變換108
6.3 立體表示模型188
9.5.7.1 仿射變換174
8.2 映射模式33
2.4 反射變換矩陣93
5.7 計算機圖形學的最新技術18
1.5.1.4.1 填充原理80
4.7.5 光強的衰減208
10.1 復合變換原理95
5.4.2 邊界像素的處理原則75
4.5 圖形顯示器的發展及其工作原理7
1.5 小結183
習題8183第9章 動態消隱187
9.2 斜等側圖118
6.2.4.6.1 B樣條曲面的定義149
7.5 液晶顯示器13
1.5 分形灌木叢173
8.1 圖形學中常用的坐標系98
5.1 物體的材質205
10.1 圖形的數據結構187
9.5.1.6 圖形軟體標準的形成18
1.3 有效邊和有效邊表76
4.3 上半部分I的遞推公式62
3.3 旋轉變換110
6.5.4 隱面演算法194
9.1 基本概念130
7.8 小結19
習題119第2章 Visual C++6.3.2.2 裁剪步驟102
5.3 擬合和逼近131
7.2 消隱演算法分類190
9.3 遞推公式57
3.1 演算法原理58
3.8 小結106
習題5106第6章 三維變換和投影108
6.1.3 二維變換矩陣90
5.2 矩陣相乘89
5.4 程序說明220
10.5 構造特殊的三次B樣條曲線的技巧148
7.2 相對於任一參考點的二維幾何變換95
5.3 三維復合變換113
6.1 透視變換坐標系120
6.1 參數樣條曲線定義132
7.2 遞歸模型160
8目錄
計算機圖形學基礎教程(Visual C++版)
第1章 導論1
1.1
B. 計算機圖形學中有幾種直線裁剪演算法
計算機圖形學(Computer Graphics,簡稱CG)是一種使用數學演算法將二維或三維圖形轉化為計算機顯示器的柵格形式的科學。
簡單地說,計算機圖形學的主要研究內容就是研究如何在計算機中表示圖形、以及利用計算機進行圖形的計算、處理和顯示的相關原理與演算法。圖形通常由點、線、面、體等幾何元素和灰度、色彩、線型、線寬等非幾何屬性組成。從處理技術上來看,圖形主要分為兩類,一類是基於線條信息表示的,如工程圖、等高線地圖、曲面的線框圖等,另一類是明暗圖,也就是通常所說的真實感圖形。
計算機圖形學一個主要的目的就是要利用計算機產生令人賞心悅目的真實感圖形。為此,必須建立圖形所描述的場景的幾何表示,再用某種光照模型,計算在假想的光源、紋理、材質屬性下的光照明效果。所以計算機圖形學與另一門學科計算機輔助幾何設計有著密切的關系。事實上,圖形學也把可以表示幾何場景的曲線曲面造型技術和實體造型技術作為其主要的研究內容。同時,真實感圖形計算的結果是以數字圖像的方式提供的,計算機圖形學也就和圖像處理有著密切的關系。
圖形與圖像兩個概念間的區別越來越模糊,但還是有區別的:圖像純指計算機內以點陣圖形式存在的灰度信息,而圖形含有幾何屬性,或者說更強調場景的幾何表示,是由場景的幾何模型和景物的物理屬性共同組成的。
計算機圖形學的研究內容非常廣泛,如圖形硬體、圖形標准、圖形交互技術、光柵圖形生成演算法、曲線曲面造型、實體造型、真實感圖形計算與顯示演算法、非真實感繪制,以及科學計算可視化、計算機動畫、自然景物模擬、虛擬現實等。
C. 簡述梁友棟-Barsky線段裁剪演算法的基本思想
利用線段的參數表達形式直接判別落在窗口內的部分線段。
大體上有以下幾步,有些步驟依據中間的判斷結果可以省略或跳轉。
第一步:計算出Qi和Di(i=L,R,B,T)
第二步:看Qi的符號進行判斷
第三步:計算tL=max(0,ti(始邊參數)), tU=min(1,ti(終邊參數))
如果,tU>tL,則可見線段區間[tL,tU]
第四步:利用tL和tU計算端點坐標
實際上很簡單,不要想像的太難。網上有很多博客有介紹,可以看看。
D. 學習計算機圖形學的書籍介紹
目錄
計算機圖形學基礎教程(Visual C++版)
第1章 導論1
1.1 計算機圖形學的應用領域1
1.1.1 計算機輔助設計1
1.1.2 計算機藝術1
1.1.3 虛擬現實3
1.1.4 計算機輔助教學3
1.2 計算機圖形學的概念4
1.3 計算機圖形學的相關學科5
1.4 計算機圖形學的確立和發展5
1.5 圖形顯示器的發展及其工作原理7
1.5.1 陰極射線管7
1.5.2 隨機掃描顯示器8
1.5.3 直視儲存管顯示器8
1.5.4 光柵掃描顯示器9
1.5.5 液晶顯示器13
1.5.6 等離子顯示器15
1.5.7 三維顯示器15
1.6 圖形軟體標準的形成18
1.7 計算機圖形學的最新技術18
1.7.1 交互技術18
1.7.2 造型技術18
1.7.3 真實感圖形顯示技術19
1.8 小結19
習題119第2章 Visual C++6.0繪圖基礎21
2.1 面向對象程序設計基礎21
2.1.1 類和對象21
2.1.2 構造函數和析構函數22
2.1.3 對象的動態建立和釋放24
2.1.4 繼承與派生25
2.2 MFC上機操作步驟28
2.3 基本繪圖函數31
2.3.1 CDC類結構和GDI對象32
2.3.2 映射模式33
2.3.3 CDC類的主要繪圖成員函數34
2.3.4 設備上下文的調用和釋放50
2.3.5 VC++繪制圖形的幾種方法51
2.4 小結52
習題252第3章 基本圖形的掃描轉換55
3.1 直線的掃描轉換55
3.1.1 演算法原理56
3.1.2 構造中點偏差判別式56
3.1.3 遞推公式57
3.2 圓的掃描轉換57
3.2.1 演算法原理58
3.2.2 構造中點偏差判別式59
3.2.3 遞推公式60
3.3 橢圓的掃描轉換60
3.3.1 演算法原理61
3.3.2 構造上半部分I中點偏差判別式62
3.3.3 上半部分I的遞推公式62
3.3.4 構造下半部分II中點偏差判別式64
3.3.5 下半部分II的遞推公式64
3.4 反走樣技術66
3.5 直線距離加權反走樣演算法67
3.5.1 演算法原理67
3.5.2 構造距離判別式69
3.5.3 計算機化69
3.6 小結69
習題369第4章 多邊形填充72
4.1 實面積圖形的概念72
4.1.1 多邊形的定義73
4.1.2 多邊形的表示73
4.1.3 多邊形的填充74
4.1.4 區域填充74
4.2 有效邊表填充演算法75
4.2.1 填充原理75
4.2.2 邊界像素的處理原則75
4.2.3 有效邊和有效邊表76
4.2.4 邊表79
4.3 邊緣填充演算法80
4.3.1 填充原理80
4.3.2 填充過程80
4.4 區域填充演算法82
4.4.1 填充原理82
4.4.2 四鄰接點和八鄰接點82
4.4.3 四連通域和八連通域83
4.4.4 四鄰接點填充演算法和八鄰接點填充演算法84
4.5 小結85
習題485第5章 二維變換和裁剪89
5.1 圖形幾何變換基礎89
5.1.1 規范化齊次坐標89
5.1.2 矩陣相乘89
5.1.3 二維變換矩陣90
5.1.4 二維幾何變換90
5.2 二維圖形基本幾何變換矩陣91
5.2.1 平移變換矩陣91
5.2.2 比例變換矩陣91
5.2.3 旋轉變換矩陣92
5.2.4 反射變換矩陣93
5.2.5 錯切變換矩陣94
5.3 二維復合變換95
5.3.1 復合變換原理95
5.3.2 相對於任一參考點的二維幾何變換95
5.3.3 相對於任意方向的二維幾何變換96
5.4 二維圖形裁剪98
5.4.1 圖形學中常用的坐標系98
5.4.2 窗口和視區及窗視變換99
5.4.3 窗視變換矩陣100
5.5 Cohen-Sutherland直線裁剪演算法101
5.5.1 編碼原理101
5.5.2 裁剪步驟102
5.5.3 交點計算公式102
5.6 中點分割直線裁剪演算法103
5.6.1 中點分割直線裁剪演算法原理103
5.6.2 中點計算公式103
5.7 梁友棟-Barsky直線裁剪演算法103
5.7.1 梁友棟演算法原理103
5.7.2 演算法分析104
5.7.3 演算法的幾何意義104
5.8 小結106
習題5106第6章 三維變換和投影108
6.1 三維幾何變換108
6.1.1 三維變換矩陣108
6.1.2 三維幾何變換108
6.2 三維基本幾何變換矩陣109
6.2.1 平移變換109
6.2.2 比例變換109
6.2.3 旋轉變換110
6.2.4 反射變換111
6.2.5 錯切變換112
6.3 三維復合變換113
6.4 投影變換115
6.4.1 三視圖115
6.4.2 斜等側圖118
6.5 透視變換120
6.5.1 透視變換坐標系120
6.5.2 坐標系變換121
6.5.3 用戶坐標繫到觀察坐標系的變換122
6.5.4 觀察坐標繫到屏幕坐標系的變換124
6.5.5 透視投影分類125
6.6 小結127
習題6128第7章 自由曲線和曲面130
7.1 基本概念130
7.1.1 樣條曲線曲面130
7.1.2 曲線曲面的表示形式130
7.1.3 擬合和逼近131
7.1.4 連續性條件131
7.2 三次參數樣條曲線132
7.2.1 參數樣條曲線定義132
7.2.2 系數求解133
7.2.3 邊界條件133
7.3 Hermite樣條曲線135
7.4 Bezier曲線137
7.4.1 Bezier曲線的定義137
7.4.2 Bezier曲線的性質139
7.4.3 Bezier曲線的可分割性139
7.5 Bezier曲面141
7.5.1 Bezier曲面的定義141
7.5.2 雙三次Bezier曲面的定義141
7.6 B樣條曲線142
7.6.1 B樣條曲線的定義143
7.6.2 二次B樣條曲線143
7.6.3 三次B樣條曲線144
7.6.4 B樣條曲線的性質146
7.6.5 構造特殊的三次B樣條曲線的技巧148
7.7 B樣條曲面149
7.7.1 B樣條曲面的定義149
7.7.2 雙三次B樣條曲面的定義149
7.7.3 雙三次B樣條曲面的連續性150
7.8 小結152
習題7152第8章 分形幾何156
8.1 分形和分維156
8.1.1 分形的誕生156
8.1.2 分形的基本特徵157
8.1.3 分形的定義158
8.1.4 分形維數的定義158
8.2 遞歸模型160
8.2.1 Cantor集160
8.2.2 Koch曲線161
8.2.3 Peano-Hilbert曲線162
8.2.4 Sierpinski墊片、地毯和海綿164
8.2.5 C字曲線168
8.2.6 Caley樹168
8.3 L系統模型169
8.3.1 L系統文法169
8.3.2 Koch曲線170
8.3.3 分形草171
8.3.4 Peano-Hilbert曲線171
8.3.5 分形灌木叢173
8.4 IFS迭代函數系統模型174
8.4.1 仿射變換174
8.4.2 IFS175
8.4.3 Koch曲線178
8.4.4 Sierpinski墊片180
8.4.5 楓葉生成182
8.5 小結183
習題8183第9章 動態消隱187
9.1 圖形的數據結構187
9.1.1 圖形的幾何信息和拓撲信息187
9.1.2 基本圖形的數據結構187
9.1.3 立體表示模型188
9.2 消隱演算法分類190
9.3 隱線演算法190
9.3.1 凸多面體消隱演算法190
9.3.2 曲面體消隱演算法192
9.4 隱面演算法194
9.4.1 Z-Buffer演算法194
9.4.2 畫家演算法197
9.5 小結198
習題9198第10章 真實感圖形201
10.1 顏色模型201
10.1.1 基本概念201
10.1.2 RGB顏色模型202
10.1.3 Gouraud顏色漸變203
10.2 材質模型和光照模型205
10.2.1 物體的材質205
10.2.2 環境光模型206
10.2.3 漫反射光模型206
10.2.4 鏡面反射光模型207
10.2.5 光強的衰減208
10.3 紋理映射209
10.3.1 紋理定義209
10.3.2 紋理映射210
10.4 OpenGL簡介210
10.4.1 案例效果210
10.4.2 TestView.h文件210
10.4.3 TestView.cpp文件213
10.4.4 程序說明220
10.5 小結222
習題10222附錄A 配套實踐教程的案例設置及與本書的對應關系225
E. 計算機圖形學直線段裁剪演算法或二維基本變換演算法,能復制運行的來啊,謝謝大俠們了 啊
#include"graphics.h"
#include"math.h"
typedef struct Point /* 點 */
{
int x;
int y;
}Point;
/* 點的平移變換 */
void PinYi(int * x,int * y,int tx,int ty)
{
*x = *x + tx;
*y = *y + ty;
}
/* 點的旋轉變換 */
void XuanZhuan(int * x,int * y,float q)
{
int m ;
int n;
float Q;
Q = (3.1415926/180)*q;
m = (*x);
n = (*y);
*x = m * cos(Q) - n * sin(Q);
*y = m * sin(Q) + n * cos(Q);
}
void XuanZhuan_RY(int m,int n,int * x,int * y,float q)/* 繞(m,n)的旋轉*/
{
PinYi(x,y,-m,-n);
XuanZhuan(x,y,q);
PinYi(x,y,m,n);
}
void line_dda(int x1,int y1,int x2,int y2 ,COLORREF color)
{
float x = 0.0;
float y = 0.0;
float x3 = ( float )x1;
float y3 = ( float )y1;
float n;
n=( float )( abs( x2-x1 ) >= abs( y2-y1 ) ? abs( x2-x1 ) : abs( y2-y1 ) );
if( n != 0.0 )
{
x=( ( float )( x2-x1 ) ) / n;
y=( ( float )( y2-y1 ) ) / n;
}
while( n >= 0 )
{
putpixel( ( int )x3 , ( int )y3 , color );
x3 += x ;y3 += y ;n -= 1.0;
}
}
void line(Point i,Point j,COLORREF color){
line_dda(i.x,i.y,j.x,j.y,color);
}
Point p[4]={-50,50,50,50,-50,-50,50,-50};
int PY[2]={0,0},XZ=0;
void main()
{
int width=600,height=480;
int zbx=200,zby=200;
COLORREF color=0x00ff00;
char ch;
initgraph(width, height);
ch=getch();
for(int o=0;o<4;o++)
PinYi(&p[o].x,&p[o].y,zbx,zby);
while(ch=getch())
{
PY[0]=0;PY[1]=0;
XZ=0;
switch(ch){
case 'q': XZ--;break;
case 'e': XZ++;break;
case 'w': PY[1]--;break;
case 's': PY[1]++;break;
case 'a': PY[0]--;break;
case 'd': PY[0]++;break;
//default :return 0;
}
for(int o=0;o<4;o++)
{
PinYi(&p[o].x,&p[o].y,PY[0],PY[1]);
PinYi(&zbx,&zby,PY[0],PY[1]);
XuanZhuan_RY(zbx,zby,&p[o].x,&p[o].y,XZ);
}
cleardevice();
line(p[0],p[1],color);
line(p[1],p[2],color);
line(p[2],p[3],color);
line(p[3],p[0],color);
}
}
有個問題是,,旋轉的時候因為π取的3.1415926七位,所以越轉越小!!!
需要改動!!就不弄了,要睡了!!
F. 計算機圖形學裁剪試驗報告怎麼寫
不知你的要求是什麼我把我報告的一部分關於裁剪的粘給你 裁剪(clipping)是裁去窗口之外物體或物體部分的一種操作。 2.1 直線的剪裁 Cohen-Sutherland演算法;2.2 多邊形的剪裁 Sutlerland_Hodgman演算法2.3 字元串的剪裁 裁剪:確定圖形中哪些部分落在顯示區之內,哪些落在顯示區之外,以便只顯示落在顯示區內的那部分圖形。這個選擇過程稱為裁剪。窗口:畫面上對應於屏幕顯示的那部分區域成為窗口。一般定義為矩形。 2.1 直線的剪裁 直線和窗口的關系可以分為如下3類(圖2.20): ⑴ 整條直線在窗口內。此時,不需剪裁,顯示整條直線。 ⑵ 整條直線在窗口外,此時,不需剪裁,不顯示整條直線。 ⑶ 部分直線在窗口內,部分直線在窗口外。此時,需要求出直線與窗框的交點,並將窗口外的直線部分剪裁掉,顯示窗口內的直線部分。 直線剪裁演算法有兩個主要步驟。首先將不需剪裁的直線挑出,即刪去在窗外的直線。然後,對其餘直線,逐條與窗框求交點,並將窗口外的 部分刪去。 Cohen-Sutherland直線剪裁演算法以區域編碼為基礎,將窗口及其周圍的8個方向以4 bit的二進制數進行編碼。各編碼分別代表窗外上下右左空間的編碼 圖2.21所示的編碼方法將窗口及其鄰域分為5個區域: ⑴ 內域:區域(0000)。 ⑵ 上域:區域(1001, 1000, 1010)。 ⑶ 下域:區域(0101, 0100, 0110)。 ⑷ 左域:區域(1001, 0001, 0101)。 ⑸ 右域:區域(1010, 0010, 0110)。 當線段的兩個端點的編碼的邏輯「與」非零時 ,線段為顯然不可見的 對某線段的兩個端點的區號進行位與運算,可知這兩個端點是否同在視區的上、下、左、右; 演算法的主要思想是,對每條直線P1P2: ⑴ 對直線兩端點P1、P2編碼分別記為C1(P1)={a1, b1, c1, d1},C2(P2)={a2, </p><p>b2, c2, d2}其中,ai、bi、ci、di取值范圍為{1, 0},i∈{1, 2}。⑵ 如果ai=bi=ci=di=0,則顯示整條直線,取出下一條直線,返步驟(1)。否則,進入步驟(3)。⑶如果|a1-a2|=1,則求直線與窗上邊(y=yw-max)的交點,並刪去交點以上部分。如果|b1-b2|=1,|c1-c2= |=1,|d1-d2|=1,作類似處理。⑷ 返步驟(1)。 Cohen-Sutherland演算法——C語言程序 #define LEFT 1 #define RIGHT 2 #define BOTTOM 4 #define TOP 8 int encode(float x,float y) { int c=0; if(x<XL) c|=LEFT; if(x>XR) c|=RIGHT; if(x<YB) c|=BOTTOM; if(x>YT) c|=TOP; retrun c; } void CS_LineClip(x1,y1,x2,y2,XL,XR,YB,YT) float x1,y1,x2,y2,XL,XR,YB,YT;//(x1,y1)(x2,y2)為線段的端點坐標,其他四個參數定義窗口的邊界 { int code1,code2,code; code1=encode(x1,y1); code2=encode(x2,y2); while(code1!=0 ||code2!=0) { if(code1&code2 !=0) return; //位於窗口外 code = code1; if(code1==0) code = code2; if(LEFT&code !=0) //求線段與窗口邊界 //的交點 { x=XL; //左 y=y1+(y2-y1)*(XL-x1)/(x2-x1); } else if(RIGHT&code !=0) { x=XR; //右 y=y1+(y2-y1)*(XR-x1)/(x2-x1); } else if(BOTTOM&code !=0) { y=YB; //下 x=x1+(x2-x1)*(YB-y1)/(y2-y1); } else if(TOP & code !=0) { y=YT; //上 x=x1+(x2-x1)*(YT-y1)/(y2-y1); } if(code ==code1) { x1=x;y1=y; code1 =encode(x,y);} else { x2=x;y2=y; code2 =encode(x,y);} } displayline(x1,y1,x2,y2); //線段位於窗口內 } 2.6.2 多邊形的剪裁 多邊形剪裁演算法的關鍵在於,通過剪裁,要保持窗口內多邊形的邊界部分,而且要將窗框的有關部分按一定次序插入多邊形的保留邊界之間,從而使剪裁後的多邊形的邊仍然保持封閉狀態,以便填色演算法得以正確實現(圖2.22(c))。 Sutherland-Hodgeman演算法—逐次多邊形裁剪演算法 基本思想:通過簡單地一次用窗口的一條邊裁剪多邊形 演算法:(1) 將多邊形表示為頂點表,即{P1,P2,… … Pn-1,Pn }, 並生成邊表P1P2, P2P3, … … Pn-1Pn, PnP1, (2) 用窗口邊裁剪原多邊形,生成中間多邊形(3) 對中間多邊形重復步驟(2), 直至被窗口所有邊裁剪完為止 關鍵:根據多邊形的邊表,逐次對每一段邊與裁剪線(窗口邊)比較,判別輸入頂點的個數和坐標,並聯結成封閉多邊形 實現方法:①設置二個表 輸入頂點表(向量)—用於存放被裁剪多邊形的頂點p1-pm。 輸出頂點表(線性鏈表)—用於存放裁剪過程中及結果的頂點 q1-qn。②輸入頂點表中各頂點要求按一定順序排列,一般可採用順時針或逆時針方向。③相對於裁剪窗口的各條邊界,按頂點表中的順序,逐邊進行裁剪。 具體操作: Pi 若位於邊界線的可見一側,則 Pi 送輸出頂點表 Pi 若位於邊界線的不可見一側,則將其舍棄。 除第一個頂點外,還要檢查每一個 Pi 和前一頂點 Pi-1是否位於窗口邊界的同一側,若不在同一側,則需計算出交點送輸出頂點表。最後一個頂點 Pn則還要與 P1 一起進行同樣的檢查。 裁剪前: 裁剪後:輸入頂點表:p1p2p3p4p5 輸入頂點表: 不變輸出頂點表:空 輸出頂點表: q1q2p3q7q8q5q6q4q3 �6�1考慮窗口的一條邊以及延長線構成的裁剪線該線把平面分成兩個部分:可見一側;不可見一側�6�1多邊形的各條邊的兩端點S、P。它們與裁剪線的位置關系只有四種 2.3 字元串的剪裁 字元串剪裁有3種可選擇的方法。 ⒈ 字元串的有或無剪裁 (all-or-none-text) ⒉ 字元的有或無剪裁 (all-or-none-character) ⒊ 字元的精密剪裁
G. 利用編碼的方法進行二維裁剪時有哪些判斷規則
要利用編碼製作和裁剪出不規則的圖形,具體步驟如下:
第一、啟動ps軟體,進入ps的界面後,將特定的圖片拖進去;
第二。打開圖片之後,雙擊該背景圖層右邊的鎖頭圖標,在「新建圖層」窗口上點擊「確定」;