轉(zhuǎn)自:http://blog.csdn.net/beniao277/archive/2010/06/04/5647291.aspx
Silverlight中的坐標(biāo)系統(tǒng)與向量運(yùn)動(dòng)
如果我們習(xí)慣于數(shù)學(xué)坐標(biāo)系,那么對(duì)于Silverlight中的坐標(biāo)系可能會(huì)有些不習(xí)慣。因?yàn)樵赟ilverlight中的坐標(biāo)系與Flash中的坐標(biāo)系一樣,一切都的顛倒的。在標(biāo)準(zhǔn)的數(shù)學(xué)坐標(biāo)系中,X軸表示水平軸,Y軸表是垂直軸,然而Silverlight中的坐標(biāo)系是基于視頻屏幕的坐標(biāo)系。
Silverlight中的坐標(biāo)系統(tǒng)和Flash中的坐標(biāo)系統(tǒng)是完全一樣的,都是采用笛卡爾坐標(biāo)系統(tǒng),分為四象限。簡(jiǎn)單的說就是以X軸表示水平方向并向東方無限延伸,Y軸表示垂直方向并向著南方無限延伸,X和Y軸相交點(diǎn)表示坐標(biāo)系源點(diǎn),其X,Y坐標(biāo)值為0,0,所以在Silverlight中的坐標(biāo)系范圍就是以坐標(biāo)源點(diǎn)為起點(diǎn),無限向東南方向延伸,也就是笛卡爾坐標(biāo)系中的四象限。
Silverlight的向量(Vector)運(yùn)動(dòng)目前僅支持一維向量運(yùn)動(dòng)(One-dimensional vector movement)和二維向量運(yùn)動(dòng)(Two-dimensional vector movement),也就是平時(shí)大家所說的1D和2D。一維向量運(yùn)動(dòng)可以理解為在同一直線上的運(yùn)動(dòng),二維向量運(yùn)動(dòng)則可以理解在平面空間(X,Y坐標(biāo)系)里的運(yùn)動(dòng)。向量的概念從初中就開始學(xué)習(xí),這里就不做介紹了,如有不清楚的朋友可以移步到這里。
二維向量運(yùn)動(dòng)很容易理解,在Silverlight的動(dòng)畫設(shè)計(jì)中二維動(dòng)畫也是最常見和使用率最高的動(dòng)畫,可參考在本系列第一篇《Silverlight & Blend動(dòng)畫設(shè)計(jì)系列一:偏移動(dòng)畫(TranslateTransform ) 》中所介紹到的偏移動(dòng)畫變換的實(shí)現(xiàn),其實(shí)質(zhì)就是一個(gè)二維向量運(yùn)動(dòng),動(dòng)畫元素對(duì)象在動(dòng)畫過度期間不停的改變對(duì)象所在的物理坐標(biāo)位置實(shí)現(xiàn)了對(duì)象位置的變化,本質(zhì)上就是元素對(duì)象在坐標(biāo)系里的二維坐標(biāo)位置的改變。從幾何上來理解就是發(fā)生了一個(gè)二維的向量運(yùn)動(dòng),Silverlight中命名為動(dòng)畫。
/// <summary> /// 創(chuàng)建動(dòng)畫 /// </summary> private void CreateStoryboard() { //元素當(dāng)前所在的坐標(biāo)點(diǎn) Point currentPoint = new Point(Canvas.GetLeft(darkMoon), Canvas.GetTop(darkMoon)); //目標(biāo)點(diǎn)坐int標(biāo) Point point = new Point(280, -245); //創(chuàng)建動(dòng)畫容器時(shí)間線 Storyboard storyboard = new Storyboard();
DoubleAnimation doubleAnimation = new DoubleAnimation();
出處:Microsoft
責(zé)任編輯:bluehearts
上一頁 下一頁 Silverlight中的坐標(biāo)系統(tǒng)與向量運(yùn)動(dòng) [2]
◎進(jìn)入論壇RIA設(shè)計(jì)與應(yīng)用版塊參加討論
|