




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
教育部普通高等教育十二五國家級規(guī)劃教材
《C#程序設(shè)計(jì)及應(yīng)用教程》第3版
(包括簡化版:《C#程序設(shè)計(jì)教程》第3版)
第10章動(dòng)畫與多媒體2Ch10動(dòng)畫與多媒體10.1WPF動(dòng)畫基礎(chǔ)10.2基本動(dòng)畫10.3關(guān)鍵幀動(dòng)畫10.4路徑動(dòng)畫10.5用代碼實(shí)現(xiàn)變換10.6對繪圖結(jié)果進(jìn)行效果處理10.7音頻和視頻的播放310.1WPF動(dòng)畫基礎(chǔ)在WPF應(yīng)用程序中,所有可見對象都可以實(shí)現(xiàn)動(dòng)畫功能,具體的實(shí)現(xiàn)可以分為兩大類動(dòng)畫技術(shù)。410.1WPF動(dòng)畫基礎(chǔ)除了逐幀動(dòng)畫以外,本地動(dòng)畫、時(shí)鐘動(dòng)畫以及演示圖板動(dòng)畫都是基于Timeline類來實(shí)現(xiàn)的。Timeline類是定義計(jì)時(shí)行為的抽象基類。該抽象類提供了控制動(dòng)畫播放的屬性,從該類繼承的各種動(dòng)畫類都可以使用這些屬性。Duration屬性RepeatBehavior屬性AutoReverse屬性BeginTime屬性FillBehavior屬性控制時(shí)間線速度的屬性(SpeedRatio、AccelerationRatio、DecelerationRatio屬性)5利用Duration屬性控制動(dòng)畫例10-1
(a)初始效果(b)動(dòng)畫播放期間的效果6利用RepeatBehavior屬性控制動(dòng)畫例10-2
7利用AutoReverse屬性控制動(dòng)畫例10-3
8利用SpeedRatio、AccelerationRatio、DecelerationRatio屬性控制動(dòng)畫例10-4
不同速度控制的運(yùn)行效果910.2基本動(dòng)畫基本動(dòng)畫類型用本地動(dòng)畫實(shí)現(xiàn)基本動(dòng)畫用Storyboard實(shí)現(xiàn)基本動(dòng)畫用時(shí)鐘動(dòng)畫實(shí)現(xiàn)基本動(dòng)畫101.基本動(dòng)畫類型WPF提供的基本動(dòng)畫可控制多種類型,這些動(dòng)畫的命名約定為<類型>Animation可用的<類型>有:Byte、Int16、Int32、Int64、Single、Double、Decimal、Color、Point、Size、Thickness、Rect、Vector、Vector3D、Quaternion、Rotation3D。在這些動(dòng)畫類型中,常用有DoubleAnimation、ColorAnimation和PointAnimation。11From/To/By動(dòng)畫的基本用法(假定基值為120)格
式舉
例說
明From起始值
To結(jié)束值From50To200從起始值50逐漸變化到結(jié)束值200From起始值
By偏移量From50By150從起始值50逐漸變化到200(即50+150)From起始值From50從起始值50逐漸變化到基值120To結(jié)束值To150從基值120逐漸變化到結(jié)束值150By偏移量By50從基值120逐漸變化到170(即120+50)
122.用本地動(dòng)畫實(shí)現(xiàn)基本動(dòng)畫本地動(dòng)畫是指直接對對象的屬性值進(jìn)行處理的動(dòng)畫,這種動(dòng)畫受計(jì)時(shí)系統(tǒng)支持,但不能對動(dòng)畫進(jìn)行暫停等交互操作。本地動(dòng)畫只能用C#代碼來實(shí)現(xiàn),無法用XAML來描述。13用本地動(dòng)畫實(shí)現(xiàn)基本動(dòng)畫示例10-5
用本地動(dòng)畫實(shí)現(xiàn)基本動(dòng)畫運(yùn)行效果143.用Storyboard實(shí)現(xiàn)基本動(dòng)畫基本動(dòng)畫、關(guān)鍵幀動(dòng)畫、路徑動(dòng)畫都可以使用Storyboard來實(shí)現(xiàn)。用Storyboard實(shí)現(xiàn)動(dòng)畫時(shí),既可以用C#代碼來編寫,也可以用XAML來描述。15用Storyboard實(shí)現(xiàn)基本動(dòng)畫示例例10-6、10-7運(yùn)行效果164.用時(shí)鐘動(dòng)畫實(shí)現(xiàn)基本動(dòng)畫時(shí)鐘動(dòng)畫適用于處理大量類型相同而且需要交互的場合。例10-8運(yùn)行效果1710.3關(guān)鍵幀動(dòng)畫關(guān)鍵幀動(dòng)畫類型利用BlendforVS2012制作關(guān)鍵幀動(dòng)畫在關(guān)鍵幀動(dòng)畫中插入樣條動(dòng)畫在關(guān)鍵幀動(dòng)畫中插入緩動(dòng)函數(shù)1.關(guān)鍵幀動(dòng)畫類型關(guān)鍵幀動(dòng)畫類型是內(nèi)插關(guān)鍵幀的容器。關(guān)鍵幀動(dòng)畫類型的命名約定為<類型>AnimationUsingKeyFrames在每個(gè)關(guān)鍵幀動(dòng)畫類型的開始標(biāo)記和結(jié)束標(biāo)記之間,都可以使用多種內(nèi)插關(guān)鍵幀類型,每個(gè)內(nèi)插關(guān)鍵幀都由關(guān)鍵時(shí)間和關(guān)鍵值組成。18關(guān)鍵幀動(dòng)畫可控制的屬性類型以及可用的內(nèi)插方法WPF可控制的屬性類型Silverlight可控制的屬性類型可用的內(nèi)插方法Boolean、Matrix、String、ObjectObject離散Byte、Color、Decimal、Double、Int16、Int32、Int64、Point、Rect、Quaternion、VectorRotation3D、Single、Size、Thickness、Vector3DColor、Double、Point離散、線性、樣條192.利用BlendforVS2012制作關(guān)鍵幀動(dòng)畫在Window7下制作關(guān)鍵幀動(dòng)畫或者路徑動(dòng)畫時(shí),或者制作應(yīng)用程序原型時(shí),一般借助Blend+SketchFlowforVS2012來實(shí)現(xiàn),這樣能極大地提高項(xiàng)目開發(fā)的效率。20BlendforVS2012的設(shè)計(jì)界面21使用BlendforVS2012制作關(guān)鍵幀動(dòng)畫的操作要點(diǎn)創(chuàng)建演示圖板后才能利用時(shí)間線添加關(guān)鍵幀。先選擇要對其進(jìn)行動(dòng)畫的對象,然后拖動(dòng)時(shí)間線到某個(gè)關(guān)鍵時(shí)間,再修改該關(guān)鍵時(shí)間的目標(biāo)屬性值。在事件觸發(fā)器中指定事件。223.在關(guān)鍵幀動(dòng)畫中插入樣條動(dòng)畫樣條動(dòng)畫使用三次貝塞爾曲線來實(shí)現(xiàn),每條曲線段都由4個(gè)點(diǎn)來定義:起點(diǎn)、終點(diǎn)和中間的兩個(gè)控制點(diǎn)。23樣條動(dòng)畫示例例10-10244.在關(guān)鍵幀動(dòng)畫中插入緩動(dòng)函數(shù)在內(nèi)插關(guān)鍵幀中,還可以將特殊的數(shù)學(xué)公式f(t)應(yīng)用于動(dòng)畫,即隨著時(shí)間t的變化,將函數(shù)f(t)的值自動(dòng)插入到某個(gè)屬性值中,從而實(shí)現(xiàn)各種特殊的動(dòng)畫效果。這些實(shí)現(xiàn)特殊效果的數(shù)學(xué)公式稱為緩動(dòng)函數(shù)。25常用的緩動(dòng)函數(shù)名稱說明BackEase在某一動(dòng)畫開始沿指示的路徑進(jìn)行動(dòng)畫處理前稍稍收回該動(dòng)畫的移動(dòng)。其效果類似跳遠(yuǎn)時(shí)先后退幾步再起跑BounceEase創(chuàng)建具有彈跳效果的動(dòng)畫。一般使用EaseOut模擬落地的反彈效果。Bounces屬性獲取或設(shè)置彈跳次數(shù),Bounciness屬性獲取或設(shè)置下一次反彈的幅度。該值越小表示彈性越好,值越大表示彈性越差CircleEase使用循環(huán)函數(shù)加速和減速的動(dòng)畫ElasticEase類似于彈簧在停止前來回振蕩的動(dòng)畫ExponentialEase使用指數(shù)公式加速和減速的動(dòng)畫PowerEase使用公式
f(t)=tp(其中,p等于Power屬性)加速和減速的動(dòng)畫SineEase使用正弦公式加速和減速的動(dòng)畫26緩動(dòng)函數(shù)動(dòng)畫示例例10-11272810.4路徑動(dòng)畫使用PathGeometry繪制路徑路徑動(dòng)畫類型利用BlendforVS2012制作路徑動(dòng)畫1.使用PathGeometry繪制路徑例10-12路徑標(biāo)記語法示例292.路徑動(dòng)畫類型WPF提供的路徑動(dòng)畫類型有:PointAnimationUsingPathDoubleAnimationUsingPathMatrixAnimationUsingPath30路徑動(dòng)畫類型示例例10-13PointAnimationUsingPath示例31路徑動(dòng)畫類型示例例10-14DoubleAnimationUsingPath示例32路徑動(dòng)畫類型示例例10-15MatrixAnimationUsingPath示例333.利用BlendforVS2012制作路徑動(dòng)畫在實(shí)際的項(xiàng)目開發(fā)中,一般借助BlendforVS2012讓其自動(dòng)生成實(shí)現(xiàn)路徑動(dòng)畫的代碼。在BlendforVS2012中,開發(fā)人員只需要通過鼠標(biāo)拖動(dòng)和簡單操作,即可以讓其自動(dòng)生成對應(yīng)的路徑動(dòng)畫。34利用BlendforVS2012制作路徑動(dòng)畫步驟第1步:在Blend中繪制形狀和路徑第2步:在Blend中將形狀和文本轉(zhuǎn)換為路徑第3步:在Blend中合并和剪切路徑35利用BlendforVS2012制作路徑動(dòng)畫示例例10-16在Blend中用鉛筆繪制一條螺旋狀路徑,然后讓小球沿著該路徑移動(dòng)。363710.5用代碼實(shí)現(xiàn)變換二維變換基本概念對變換進(jìn)行動(dòng)畫處理1.二維變換基本概念用戶通過改變變換矩陣的值,可以旋轉(zhuǎn)、按比例縮放、扭曲和平移對象。用戶也可以通過WPF提供的許多用起來更容易的變換類,可直接對元素進(jìn)行變換操作。38WPF的基本變換類型類
型變換屬性brushTransform,RelativeTransformContainerVisualTransformDrawingGroupTransformFrameworkElementRenderTransform,LayoutTransformGeometryTransformTextEffectTransformUIElementRenderTransform392.對變換進(jìn)行動(dòng)畫處理可以通過WPF控件的Effect屬性對各種變換(平移、旋轉(zhuǎn)、縮放、扭曲等)進(jìn)行動(dòng)畫處理。40對變換進(jìn)行動(dòng)畫處理示例例10-19對變換進(jìn)行動(dòng)畫處理示例414210.6對繪圖結(jié)果進(jìn)行效果處理模糊效果(BlurEffect)陰影效果(DropShadowEffect)文本效果(TextEffect)1.模糊效果(BlurEffect)利用繼承自Effect的BlurEffect類,可以使目標(biāo)紋理具有模糊效果(模擬通過離焦透鏡查看對象的情形)。例10-2043用BlurEffect實(shí)現(xiàn)模糊效果2.陰影效果(DropShadowEffect)利用繼承自Effect的DropShadowEffect類,可以在目標(biāo)紋理對象的周圍創(chuàng)建投影效果,比如柔和陰影、噪音、強(qiáng)烈投影以及外部發(fā)光效果等。例10-2144用DropShadowEffect實(shí)現(xiàn)陰影效果3.文本效果(TextEffect)對于模糊效果和陰影效果來說,Effect用于將所有字符作為一個(gè)整體進(jìn)行處理,而利用TextEffect,則可以對文本中的每個(gè)字符進(jìn)行效果和變換處理。例10-2245用DropShadowEffect實(shí)現(xiàn)旋轉(zhuǎn)效果4610.7音頻和視頻的播放語音音頻和視頻(MediaElement)SoundPlayerAction類1.語音Microsoft.NET框架在System.Speech.Synthesis.SpeechSynthesizer類中提供了對已安裝的語音合成引擎功能的訪問,在需要通過文字發(fā)音的項(xiàng)目需求中非常有用。47語音基本用法示例例10-23語音用法示例482.音頻和視頻(MediaElement)在WPF中,播放音頻或視頻最簡單的方法就是用MediaElement控件來實(shí)現(xiàn),該對象可播放多種類型的音頻文件和視頻文件,而且還能控制媒體的播放、暫停、停止以及音量和播放速度等。若要在WPF中使用音頻或視頻,必須在計(jì)算機(jī)上安裝WindowsMediaPlayer10或更高版本。下面的XAML描述了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 漢字繪畫課件
- 漢字的藝術(shù)魅力課件
- 戶口遷移單位介紹信
- 漢字字謎的多媒體課件
- 《英語語言與文化》2019秋冬知到智慧樹答案
- 房產(chǎn)銷售個(gè)人月工作總結(jié)
- 通信行業(yè)G技術(shù)應(yīng)用前景展望
- 漢字書法課件模板慧字
- 2024年秋新北師大版數(shù)學(xué)一年級上冊課件 我上學(xué)啦 我上學(xué)啦 2.認(rèn)識(shí)新同學(xué)
- 2024年秋新北師大版數(shù)學(xué)一年級上冊教學(xué)課件 第四單元 10以內(nèi)數(shù)加與減 第1課時(shí) 猜數(shù)游戲
- GB/T 33130-2024高標(biāo)準(zhǔn)農(nóng)田建設(shè)評價(jià)規(guī)范
- 養(yǎng)老院老人權(quán)益保護(hù)制度
- 高空作業(yè)車安全知識(shí)培訓(xùn)
- 航天科技集團(tuán)招聘 筆試題
- 吉林大學(xué)《計(jì)算機(jī)網(wǎng)絡(luò)(雙語)》2021-2022學(xué)年期末試卷
- 《解除保護(hù)性止付申請書模板》
- 2024年云網(wǎng)安全應(yīng)知應(yīng)會(huì)考試題庫
- 高層建筑火災(zāi)撲救
- 南京大學(xué)介紹
- DL-T-255-2012燃煤電廠能耗狀況評價(jià)技術(shù)規(guī)范
- 【視頻號運(yùn)營】視頻號運(yùn)營108招
評論
0/150
提交評論