第10章動畫與多媒體_第1頁
第10章動畫與多媒體_第2頁
第10章動畫與多媒體_第3頁
第10章動畫與多媒體_第4頁
第10章動畫與多媒體_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

教育部普通高等教育十二五國家級規(guī)劃教材

《C#程序設(shè)計及應用教程》第3版

(包括簡化版:《C#程序設(shè)計教程》第3版)

第10章動畫與多媒體2Ch10動畫與多媒體10.1WPF動畫基礎(chǔ)10.2基本動畫10.3關(guān)鍵幀動畫10.4路徑動畫10.5用代碼實現(xiàn)變換10.6對繪圖結(jié)果進行效果處理10.7音頻和視頻的播放310.1WPF動畫基礎(chǔ)在WPF應用程序中,所有可見對象都可以實現(xiàn)動畫功能,具體的實現(xiàn)可以分為兩大類動畫技術(shù)。410.1WPF動畫基礎(chǔ)除了逐幀動畫以外,本地動畫、時鐘動畫以及演示圖板動畫都是基于Timeline類來實現(xiàn)的。Timeline類是定義計時行為的抽象基類。該抽象類提供了控制動畫播放的屬性,從該類繼承的各種動畫類都可以使用這些屬性。Duration屬性RepeatBehavior屬性AutoReverse屬性BeginTime屬性FillBehavior屬性控制時間線速度的屬性(SpeedRatio、AccelerationRatio、DecelerationRatio屬性)5利用Duration屬性控制動畫例10-1

(a)初始效果(b)動畫播放期間的效果6利用RepeatBehavior屬性控制動畫例10-2

7利用AutoReverse屬性控制動畫例10-3

8利用SpeedRatio、AccelerationRatio、DecelerationRatio屬性控制動畫例10-4

不同速度控制的運行效果910.2基本動畫基本動畫類型用本地動畫實現(xiàn)基本動畫用Storyboard實現(xiàn)基本動畫用時鐘動畫實現(xiàn)基本動畫101.基本動畫類型WPF提供的基本動畫可控制多種類型,這些動畫的命名約定為<類型>Animation可用的<類型>有:Byte、Int16、Int32、Int64、Single、Double、Decimal、Color、Point、Size、Thickness、Rect、Vector、Vector3D、Quaternion、Rotation3D。在這些動畫類型中,常用有DoubleAnimation、ColorAnimation和PointAnimation。11From/To/By動畫的基本用法(假定基值為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.用本地動畫實現(xiàn)基本動畫本地動畫是指直接對對象的屬性值進行處理的動畫,這種動畫受計時系統(tǒng)支持,但不能對動畫進行暫停等交互操作。本地動畫只能用C#代碼來實現(xiàn),無法用XAML來描述。13用本地動畫實現(xiàn)基本動畫示例10-5

用本地動畫實現(xiàn)基本動畫運行效果143.用Storyboard實現(xiàn)基本動畫基本動畫、關(guān)鍵幀動畫、路徑動畫都可以使用Storyboard來實現(xiàn)。用Storyboard實現(xiàn)動畫時,既可以用C#代碼來編寫,也可以用XAML來描述。15用Storyboard實現(xiàn)基本動畫示例例10-6、10-7運行效果164.用時鐘動畫實現(xiàn)基本動畫時鐘動畫適用于處理大量類型相同而且需要交互的場合。例10-8運行效果1710.3關(guān)鍵幀動畫關(guān)鍵幀動畫類型利用BlendforVS2012制作關(guān)鍵幀動畫在關(guān)鍵幀動畫中插入樣條動畫在關(guān)鍵幀動畫中插入緩動函數(shù)1.關(guān)鍵幀動畫類型關(guān)鍵幀動畫類型是內(nèi)插關(guān)鍵幀的容器。關(guān)鍵幀動畫類型的命名約定為<類型>AnimationUsingKeyFrames在每個關(guān)鍵幀動畫類型的開始標記和結(jié)束標記之間,都可以使用多種內(nèi)插關(guān)鍵幀類型,每個內(nèi)插關(guān)鍵幀都由關(guān)鍵時間和關(guān)鍵值組成。18關(guān)鍵幀動畫可控制的屬性類型以及可用的內(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)鍵幀動畫在Window7下制作關(guān)鍵幀動畫或者路徑動畫時,或者制作應用程序原型時,一般借助Blend+SketchFlowforVS2012來實現(xiàn),這樣能極大地提高項目開發(fā)的效率。20BlendforVS2012的設(shè)計界面21使用BlendforVS2012制作關(guān)鍵幀動畫的操作要點創(chuàng)建演示圖板后才能利用時間線添加關(guān)鍵幀。先選擇要對其進行動畫的對象,然后拖動時間線到某個關(guān)鍵時間,再修改該關(guān)鍵時間的目標屬性值。在事件觸發(fā)器中指定事件。223.在關(guān)鍵幀動畫中插入樣條動畫樣條動畫使用三次貝塞爾曲線來實現(xiàn),每條曲線段都由4個點來定義:起點、終點和中間的兩個控制點。23樣條動畫示例例10-10244.在關(guān)鍵幀動畫中插入緩動函數(shù)在內(nèi)插關(guān)鍵幀中,還可以將特殊的數(shù)學公式f(t)應用于動畫,即隨著時間t的變化,將函數(shù)f(t)的值自動插入到某個屬性值中,從而實現(xiàn)各種特殊的動畫效果。這些實現(xiàn)特殊效果的數(shù)學公式稱為緩動函數(shù)。25常用的緩動函數(shù)名稱說明BackEase在某一動畫開始沿指示的路徑進行動畫處理前稍稍收回該動畫的移動。其效果類似跳遠時先后退幾步再起跑BounceEase創(chuàng)建具有彈跳效果的動畫。一般使用EaseOut模擬落地的反彈效果。Bounces屬性獲取或設(shè)置彈跳次數(shù),Bounciness屬性獲取或設(shè)置下一次反彈的幅度。該值越小表示彈性越好,值越大表示彈性越差CircleEase使用循環(huán)函數(shù)加速和減速的動畫ElasticEase類似于彈簧在停止前來回振蕩的動畫ExponentialEase使用指數(shù)公式加速和減速的動畫PowerEase使用公式

f(t)=tp(其中,p等于Power屬性)加速和減速的動畫SineEase使用正弦公式加速和減速的動畫26緩動函數(shù)動畫示例例10-11272810.4路徑動畫使用PathGeometry繪制路徑路徑動畫類型利用BlendforVS2012制作路徑動畫1.使用PathGeometry繪制路徑例10-12路徑標記語法示例292.路徑動畫類型WPF提供的路徑動畫類型有:PointAnimationUsingPathDoubleAnimationUsingPathMatrixAnimationUsingPath30路徑動畫類型示例例10-13PointAnimationUsingPath示例31路徑動畫類型示例例10-14DoubleAnimationUsingPath示例32路徑動畫類型示例例10-15MatrixAnimationUsingPath示例333.利用BlendforVS2012制作路徑動畫在實際的項目開發(fā)中,一般借助BlendforVS2012讓其自動生成實現(xiàn)路徑動畫的代碼。在BlendforVS2012中,開發(fā)人員只需要通過鼠標拖動和簡單操作,即可以讓其自動生成對應的路徑動畫。34利用BlendforVS2012制作路徑動畫步驟第1步:在Blend中繪制形狀和路徑第2步:在Blend中將形狀和文本轉(zhuǎn)換為路徑第3步:在Blend中合并和剪切路徑35利用BlendforVS2012制作路徑動畫示例例10-16在Blend中用鉛筆繪制一條螺旋狀路徑,然后讓小球沿著該路徑移動。363710.5用代碼實現(xiàn)變換二維變換基本概念對變換進行動畫處理1.二維變換基本概念用戶通過改變變換矩陣的值,可以旋轉(zhuǎn)、按比例縮放、扭曲和平移對象。用戶也可以通過WPF提供的許多用起來更容易的變換類,可直接對元素進行變換操作。38WPF的基本變換類型類

型變換屬性brushTransform,RelativeTransformContainerVisualTransformDrawingGroupTransformFrameworkElementRenderTransform,LayoutTransformGeometryTransformTextEffectTransformUIElementRenderTransform392.對變換進行動畫處理可以通過WPF控件的Effect屬性對各種變換(平移、旋轉(zhuǎn)、縮放、扭曲等)進行動畫處理。40對變換進行動畫處理示例例10-19對變換進行動畫處理示例414210.6對繪圖結(jié)果進行效果處理模糊效果(BlurEffect)陰影效果(DropShadowEffect)文本效果(TextEffect)1.模糊效果(BlurEffect)利用繼承自Effect的BlurEffect類,可以使目標紋理具有模糊效果(模擬通過離焦透鏡查看對象的情形)。例10-2043用BlurEffect實現(xiàn)模糊效果2.陰影效果(DropShadowEffect)利用繼承自Effect的DropShadowEffect類,可以在目標紋理對象的周圍創(chuàng)建投影效果,比如柔和陰影、噪音、強烈投影以及外部發(fā)光效果等。例10-2144用DropShadowEffect實現(xiàn)陰影效果3.文本效果(TextEffect)對于模糊效果和陰影效果來說,Effect用于將所有字符作為一個整體進行處理,而利用TextEffect,則可以對文本中的每個字符進行效果和變換處理。例10-2245用DropShadowEffect實現(xiàn)旋轉(zhuǎn)效果4610.7音頻和視頻的播放語音音頻和視頻(MediaElement)SoundPlayerAction類1.語音Microsoft.NET框架在System.Speech.Synthesis.SpeechSynthesizer類中提供了對已安裝的語音合成引擎功能的訪問,在需要通過文字發(fā)音的項目需求中非常有用。47語音基本用法示例例10-23語音用法示例482.音頻和視頻(MediaElement)在WPF中,播放音頻或視頻最簡單的方法就是用MediaElement控件來實現(xiàn),該對象可播放多種類型的音頻文件和視頻文件,而且還能控制媒體的播放、暫停、停止以及音量和播放速度等。若要在WPF中使用音頻或視頻,必須在計算機上安裝WindowsMediaPlayer10或更高版本。下面的XAML描述了

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論