【转】二维图形的几何变换
OpenGL和OpenInventor中坐標變換是一個基本概念,不搞清楚這些概念,變換矩陣會一塌糊涂,從下面網站搜到一些基礎知識,補一補。
http://202.118.167.67/eol/data/res/jsjtxx/Chapter6/CG_Txt_6_011.htm
?
正如我們在附錄中提到的那樣,用齊次坐標表示點的變換將非常方便,因此在本節中所有的幾何變換都將采用齊次坐標進行運算。二維齊次坐標變換的矩陣的形式是:
這個矩陣每一個元素都是有特殊含義的。
形進行平移變換;[g h]是對圖形作投影變換;[i]則是對圖形整體進行縮放變換。
1)平移變換
?
2)縮放變換
?
3)旋轉變換
4)對稱變換
?
對稱變換其實只是a、b、d、e取0、1等特殊值產生的一些特殊效果。例如:
當b=d=0,a=-1,e=1時有x′=-x,y′=y,產生與y軸對稱的圖形。
當b=d=0,a=-1,e=-1時有x′=x,y′=-y,產生與x軸對稱的圖形。
當b=d=0,a=e=-1時有x′=-x,y′=-y,產生與原點對稱的圖形。
當b=d=1,a=e=0時有x′=y,y′=x,產生與直線y=x對稱的圖形。
當b=d=-1,a=e=0時有x′=-y,y′=-x,產生與直線y=-x對稱的圖形。
5)錯切變換
?
當d=0時,x′=x+by,y′=y,此時,圖形的y坐標不變,x坐標隨初值? (x,y)及變換系數b作線性變化。
當b=0時,x′=x,y′=dx+y,此時,圖形的x坐標不變,y坐標隨初值? (x,y)及變換系數d作線性變化。
6)復合變換
如果圖形要做一次以上的幾何變換,那么可以將各個變換矩陣綜合起來進行一步到位的變換。復合變換有如下的性質:
對同一圖形做兩次平移相當于將兩次的平移兩加起來:
兩次連續的縮放相當于將縮放操作相乘:
兩次連續的旋轉相當于將兩次的旋轉角度相加: 縮放、旋轉變換都與參考點有關,上面進行的各種變換都是以原點為參考點的。如果相對某個一般的參考點(xf,yf)作縮放、旋轉變換,相當于將該點移到坐標原點處,然后進行縮放、旋轉變換,最后將(xf,yf)點移回原來的位置。切記復合變換時,先作用的變換矩陣在右端,后作用的變換矩陣在左端。
總結
以上是生活随笔為你收集整理的【转】二维图形的几何变换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ArcEngine编辑功能的实现(二)
- 下一篇: 关于博客