一、實驗目的和要求
1.了解二維圖形裁剪的原理(點的裁剪、直線的裁剪、多邊形的裁剪),利用vc+opengl實現直線的裁剪演算法。
二、實驗內容及主要步驟**
(1) 理解直線裁剪的原理(cohen-surtherland演算法、梁友棟演算法)
(2) 利用vc+opengl實現直線的編碼裁剪演算法,在螢幕上用乙個封閉矩形裁剪任意一條直線。
(3) 除錯、編譯、修改程式。
主要步驟**:
(1)源**:
oid linegl(int x0,int y0,int x1,int y1)
int x0,x1,y0,y1;
struct rectangle;
rectangle rect;
int compcode(int x,int y,rectangle rect)
int cohensutherlandlineclip(rectangle rect,int &x0,int &y0,int &x1,int &y1)else if(code0 & code1)elseelse if(codeout&right_edge)else if(codeout&bottom_edge)else if(codeout&top_edge)
if(codeout == code0)else
}}while(!done);
if(accept)
linegl(x0,y0,x1,y1);
return accept;
}(2)執行結果:
實驗四 dpcm編碼
一 實驗原理 dpcm編碼,是差分 編碼調製的縮寫,是典型的 編碼系統。這種方式是用已經過去的抽樣值來 當前的抽樣值,對它們的差值進行編碼。之所以不用原始樣本做 是因為在解碼端無法得到原始樣本資料,只能得到存在誤差的樣本。差值編碼可以提高編碼頻率,這種技術已應用於模擬訊號的數字通訊之中。二 實驗步驟...
直線裁剪演算法
此演算法 就是cyrus beck裁剪演算法 1.判斷dx,dy是否為零作相應的簡單處理,並返回 2.下面通過例子說明第2步的原理,現在先給出原理 如果p1p2與裁剪區域有交點,那麼p1p2與裁剪區域存在交集,使得交集中的任一元素t同時滿足下列不等式 xmin x1 dx t xmax 1 ymin...
旋轉裁剪演算法
首先看一下qq影像的旋轉裁剪功能中的對比 其中裁剪決定了旋轉後抽離其中的區域,並保持了原先的寬高比。經過研究,轉化為計算中間等比例矩形的寬高,即 x1,y1 x2,y2 的值 當然這個裁剪的點也可能因為旋轉角度以及原尺寸的關係取右上角的ac和bd直接與gh的兩個相交點。因此在求出這些點的時候比較一下...