WP7 座標變換

2022-03-10 15:37:22 字數 3448 閱讀 6728

在應用開發的過程中,有時需要使用到座標變換(平移,旋轉,縮放,三維變換等),wp7提供了一下幾種座標變換的方式

translatetransform    平移

rotatetransform     旋轉

scaletransform      縮放

skewtransform      傾斜

compositetransform   組合變換

tranformgroup      變換組

matritransform      矩陣變換

看例子再解釋

<

image

source

="img.png"

height

="291"

horizontalalignment

="left"

margin

="-523,-89,0,0"

name

="image1"

stretch

="fill"

verticalalignment

="top"

width

="313"

>

<

image.rendertransform

>

<

transformgroup

>

<

translatetransform

x="100"

y="100"

/>

<

rotatetransform

angle

="5"

/>

<

scaletransform

centerx

="180"

centery

="0"

scalex

="0.5"

scaley

="1"

/>

<

skewtransform

anglex

="10"

centery

="10"

centerx

="0"

centery

="90"

/>

<

compositetransform

centerx

="250"

centery

="185"

rotation

="45"

skewx

="15"

skewy

="15"

scalex

="1.2"

scaley

="1.2"

translatex

="230"

translatey

="200"

/>

<

matrixtransform

matrix

="2,0,0,1,12,6"

/>

transformgroup

>

image.rendertransform

>

image

>

首先定義乙個image控制項,在image裡面定義rendertransform (只能包含一種變換,如果需要使用多種變換,可以使用transformgroup )

其他應該一看就懂,沒什麼好解釋的,不懂多試幾次就會明白,下面介紹一下matrixtransform    

這是最複雜的一種變換,它是乙個3乘3的矩陣,但是,由於它第3列為0,0,1,所以,其實我們只需設定6個值就夠了。它們分別是:

m11       m12     0

m21       m22     0

offsetx  offsety  1

m11 ——x軸縮放

m12 ——y軸上傾斜

m21 ——x軸上傾斜

m22——y軸縮放

offsetx ——x軸上的位移

offsety ——y軸上的位移  

<

matrixtransform

matrix

="2,0,0,1,12,6"

/>

表示:x軸放大兩倍,y軸不變,在x軸方向平移12,y軸方向平移6,無傾斜

最後是三維變換,直接看例子和截圖  

<

image

source

="img.png"

stretch

="uniform"

horizontalalignment

="center"

verticalalignment

="center"

width

="320"

>

<

image.projection

>

<

planeprojection

rotationy

="45"

/>

image.projection

>

image

>

為了更好的看出效果,這裡只設定了y軸旋轉,也可以設定rotationx,rotationz,大家自己試吧

最後,還有c#**中控制座標變換的,首先在控制項定義時新增rendertransform

<

rectangle

height

="100"

horizontalalignment

="left"

margin

="91,46,0,0"

name

="rectangle1"

stroke

="black"

strokethickness

="1"

verticalalignment

="top"

width

="200"

fill

="red"

>

<

rectangle.rendertransform

>

<

translatetransform

/>

rectangle.rendertransform

>

rectangle

>

在**中訪問該變換,設定平移變換的x值為200

translatetransform translate = (translatetransform)this

.rectangle1.rendertransform;

translate.x = 200;

openGL系列 1 座標變換

理解物體座標系 世界座標系 相機座標系 裁剪座標系不難,關鍵是要知道對這些座標系的操作分別對應哪些函式。1 gltranslatef glscalef glrotatef 在模型 視角座標系內進行平移 縮放 旋轉 2 glulookat 對眼睛 相機 座標系進行變換 3 通用型 glmatrixmo...

svg基礎 4 座標和變換

座標和變換 元素在整個教程中都是通過座標定位的。現在是該討論這些座標所適應的系統的時候了。當首次訪問文件時,使用者 在大多數情況下,即瀏覽器 確定影象的觀察口。觀察口是文件實際可見的部分並且由乙個座標系統組成,該座標系統以左上角的點 0,0 為原點,其正的 x 軸向右而正的 y 軸向下。座標系統中的...

Qt學習之路 28 座標變換

經過前面的章節,我們已經能夠畫出一些東西來,主要就是使用qpainter的相關函式。今天,我們要看的是qpainter的座標系統。同很多座標系統一樣,qpainter的預設座標的原點 0,0 位於螢幕的左上角,x軸正方向是水平向右,y軸正方向是豎直向下。在這個座標系統中,每個畫素佔據1 x 1的空間...