




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
上海第二工業大學本科畢業設計(論文)上海第二工業大學本科畢業設計(論文)本科畢業論文題目:基于隨機模型的海水運動過程的仿真學生:專業:電子信息工程年級:指導教師:日期:
基于隨機模型的海水運動過程的仿真摘要:數字圖像處理技術是20世紀60年代發展起來的一門新興學科,海水仿真在虛擬訓練系統、3D游戲中有著廣泛的應用,隨著圖像處理理論和方法的進一步完善,使得數字圖像處理技術在各個仿真領域得到了廣泛應用,并顯示出廣闊的應用前景。Matlab系統提出的海水運動過程的仿真,建立在隨機模型的基礎上,用戶只需要對海水運動過程的特性有一般性了解,就可以調整該系統的參數,同時該系統的模擬效果較為逼真,是一種非迭代算法,實時性較好。本課題分析了海水仿真在虛擬現實技術中的地位,針對現有海水仿真技術的不足將風噪聲模型應用于虛擬現實海水仿真技術中,可以用改變參數的方式來選擇影響海水動態性能的兩個重要因素風強和海水類型,用Matlab能表現出海水運動的基本特性。本課題對目前電影、動畫、虛擬現實等動態三維設計將起到一定的推動作用。關鍵詞:三維海水;Matlab系統;虛擬仿真;噪聲;動態圖像;ThesimulationofseawatermotionbasedAbstract:Digitalimageprocessingtechnologyisanewsubjectdevelopedinthe20thcentury,60years,Withtheimageprocessingtheoryandmethodstofurtherimprove,makingthedigitalimageprocessingtechnologyinvariousfieldshasbeenwidelyappliedAndshowabroadapplicationprospects.Thesimulationofwatermovementprocessproposedbymatlabsystem,builtonthebasisofrandommodel,theuserneedonlytohavegeneralunderstandingofthecharacteristicsofthemovementprocess,canadjusttheparametersofthesystem,atthesametimethesystemsimulationresultsaremorerealistic,andit'sakindofiterativealgorithm,betterinrealtime.Thisresearchhasanalysisedthestatusofseawatersimulationinvirtualrealistictechnologyfield,andithasdirectedtowardsthedeficiencyofseawatersimulation,takingthewindyandnosiymodelintovirtualrealisticseawatersimulationtechnology.aimingatinfluencethetwoimportantelementswhichiswindandseawaterbythewayofchangingtheparameters.ItalsocanusetheMatlabtodisplaythebasicpropertyofseawatermovinginthewind.Thefocuswillhaveaneffectondynamic3Ddesignsuchascurrentmovie,cartoon,virtualreality.Keywords:3Dseawater;Matlabsystem;windnoise;virtualreality;simulation目錄TOC\o"1-3"\h\u190981緒論 1108911.1課題背景 1165861.1.1海水運動形式 111031.1.2虛擬仿真技術的主要內容 3280741.2仿真的應用及過程 44581.2.1仿真的應用 4207401.2.2仿真的過程 530571.3課題的主要研究內容 7161351.3.1海水運動曲線的模擬 784781.3.2海水三維曲面的建立 736801.3.3海水運動過程的仿真 727922三維海水仿真模型 8256602.1風噪聲的應用 8137382.2MATLAB函數 827062.2.1直接繪圖函數 8194412.2.2網格法繪制三維曲面 10134402.3海水三維模型的建立與調試 11281582.3.1點到二維曲線 12154762.3.2二維曲線到三維曲面 1789433動態海水的模擬 26291423.1海水運動過程的算法 26220893.2海水動態仿真的實現與調試 27278824總結 29304094.1本課題中所完成的工作 29253064.2遇到的問題及解決 29268234.3本課題的研究結論 29784致謝 3120660參考文獻 3228734附錄 32PAGE11緒論1.1課題背景海水波浪的運動十分復雜,雖然流體力學對其研究比較深入,可以用數學模型對流體運動變化進行比較精確的描述,但對海浪的真實渲染不但要考慮計算機生成的真實感,還要考慮運算量的大小。模型過于復雜,會使運算量過于龐大,無法實現仿真,而模型過于簡單,又會影響計算機生成圖像的真實感。波浪是自然界最為常見的現象,雖然很難準確的描述其形狀,卻為人們所熟悉。雖然在流體力學上有描述流體運動的方程,但由于該方程主要用于科學計算,并不適用于計算機場景仿真建模,因此要用其他的建模方法對海水進行建模。同時這樣的建模方法所得到的結果必須符合人們對海浪的一般認識,因此,使用計算機生成令人信服的實時性較高且較強真實感的波浪的圖像比較困難。目前海水仿真模型主要分為兩類:一類是基于幾何的模型,幾何模型計算量比較小,容易實現對海水的實時動態模擬繪制;二是基于物理的模型,它從流體力學的基本方程出發,根據其近似模擬計算出海水。海水仿真屬于虛擬現實技術領域。1.1.1海水運動形式●波浪:海水受海風的作用和氣壓變化等影響,促使它離開原來的平衡位置,而發生向上、向下、向前和向后方向運動。這就形成了海上的波浪。波浪是一種有規律的周期性的起伏運動。當波浪涌上岸邊時,由于海水深度愈來愈淺,下層水的上下運動受到了阻礙,受物體慣性的作用,海水的波浪一浪疊一浪,越涌越多,一浪高過一浪。與此同時,隨著水深的變淺,下層水的運動,所受阻力越來越大,以至于到最后,它的運動速度慢于上層的運動速度,受慣性作用,波浪最高處向前傾倒,摔到海灘上,成為飛濺的浪花.●潮汐:由于日、月引潮力的作用,使地球的巖石圈、水圈和大氣圈中分別產生的周期性的運動和變化的總稱。固體地球在日、月引潮力作用下引起的彈性—塑性形變,稱固體潮汐,簡稱固體潮或地潮;海水在日、月引潮力作用下引起的海面周期性的升降、漲落與進退,稱海洋潮汐,簡稱海潮;大氣各要素(如氣壓場、大氣風場、地球磁場等)受引潮力的作用而產生的周期性變化(如8、12、24小時)稱大氣潮汐,簡稱氣潮。其中由太陽引起的大氣潮汐稱太陽潮,由月球引起的稱太陰潮。因月球距地球比太陽近,月球與太陽引潮力之比為11:5,對海洋而言,太陰潮比太陽潮顯著。地潮、海潮和氣潮的原動力都是日、月對地球各處引力不同而引起的,三者之間互有影響。大洋底部地殼的彈性—塑性潮汐形變,會引起相應的海潮,即對海潮來說,存在著地潮效應的影響;而海潮引起的海水質量的遷移,改變著地殼所承受的負載,使地殼發生可復的變曲。氣潮在海潮之上,它作用于海面上引起其附加的振動,使海潮的變化更趨復雜。作為完整的潮汐科學,其研究對象應將地潮、海潮和氣潮作為一個統一的整體,但由于海潮現象十分明顯,且與人們的生活、經濟活動、交通運輸等關系密切,因而習慣上將潮汐(tide)一詞狹義理解為海洋潮汐。●洋流:洋流又稱海流,海洋中除了由引潮力引起的潮汐運動外,海水沿一定途徑的大規模流動。引起海流運動的因素可以是風,也可以是熱鹽效應造成的海水密度分布的不均勻性。前者表現為作用于海面的風應力,后者表現為海水中的水平壓強梯度力。加上地轉偏向力的作用,便造成海水既有水平流動,又有鉛直流動。由于海岸和海底的阻擋和摩擦作用,海流在近海岸和接近海底處的表現,和在開闊海洋上有很大的差別。大洋中深度小于二三百米的表層為風漂流層,行星風系作用在海面的風應力和水平湍流應力的合力,與地轉偏向力平衡后,便生成風漂流。行星風系風力的大小和方向,都隨緯度變化,導致海面海水的輻合和輻散。一方面,它使海水密度重新分布而出現水平壓強梯度力,當它和地轉偏向力平衡時,在相當厚的水平層中形成水平方向的地轉流;另一方面,在赤道地區的風漂流層底部,海水從次表層水中向上流動,或下降而流入次表層水中,形成了赤道地區的升降流。大洋上的結冰、融冰、降水和蒸發等熱鹽效應,造成海水密度在大范圍海面分布不均勻,可使極地和高緯度某些海域表層生成高密度的海水,而下沉到深層和底層。在水平壓強梯度力的作用下,作水平方向的流動,并可通過中層水底部向上再流到表層,這就是大洋的熱鹽環流。大洋表層生成的風漂流,構成大洋表層的風生環流。其中,位于低緯度和中緯度處的北赤道流和南赤道流,在大洋的西邊界處受海岸的阻擋,其主流便分別轉而向北和向南流動,由于科里奧利參量隨緯度的變化(β-效應)和水平湍流摩擦力的作用,形成流輻變窄、流速加大的大洋西向強化流。每年由赤道地區傳輸到地球的高緯地帶的熱量中,有一半是大洋西邊界西向強化流傳輸的。進入大洋上層的熱鹽環流,在北半球由于和大洋西向強化流的方向相同,使流速增大;但在南半球則因方向相反,流速減緩,故大洋環流西向強化現象不太顯著。大洋西向強化流在北半球向北(南半球向南)流動,而后折向東流,至某特定地區時,流動開始不穩定,流軸在其平均位置附近便發生波狀的彎曲,出現海流彎曲(或蛇行)現象,最后形成環狀流而脫離母體,生成了中央分別為來自大陸架的冷水的冷流環和來自海洋內部的暖水的暖流環。這是一類具有中等尺度的中尺度渦。此外,在大洋的其他部分,由于海流的不穩定,也能形成其他種類的中尺度渦。這些中尺度渦集中了海洋中很大一部分能量,形成了疊加在大洋氣候式平均環流場之上的各種天氣式渦旋,使大洋環流更加復雜。海流按其水溫低于或高于所流經的海域的水溫,可分為寒流和暖流兩種,前者來自水溫低處,后者來自水溫高處。表層海流的水平流速從幾厘米/秒到300厘米/秒,深處的水平流速則在10厘米/秒以下。垂直流速很小,從幾厘米/天到幾十厘米/時。海流以流去的方向作為流向,恰和風向的定義相反。海流對海洋中多種物理過程、化學過程、生物過程和地質過程,以及海洋上空的氣候和天氣的形成及變化,都有影響和制約的作用,故了解和掌握海流的規律、大尺度海-氣相互作用和長時期的氣候變化,對漁業、航運、排污和軍事等都有重要意義.1.1.2虛擬仿真技術的主要內容人們對仿真技術的期望也越來越高,過去,人們只用仿真技術來模擬某個物理現象、設備或簡單系統;今天,人們要求能用仿真技術來描述復雜系統,甚至由眾多不同系統組成的系統體系。這就要求仿真技術需要進一步發展,并吸納、融合其他相關技術。虛擬現實(VirtualReality,簡稱VR,又譯作靈境、幻真)是近年來出現的高新技術,也稱靈境技術或人工環境。虛擬現實是利用電腦模擬產生一個三維空間的虛擬世界,提供使用者關于視覺、聽覺、觸覺等感官的模擬,讓使用者如同身歷其境一般,可以及時、沒有限制地觀察三度空間內的事物。VR是一項綜合集成技術,涉及計算機圖形學、人機交互技術、傳感技術、人工智能等領域,它用計算機生成逼真的三維視、聽、嗅覺等感覺,使人作為參與者通過適當裝置,自然地對虛擬世界進行體驗和交互作用。使用者進行位置移動時,電腦可以立即進行復雜的運算,將精確的3D世界影像傳回產生臨場感。虛擬現實技術是利用計算機生成的虛擬環境逼真地模擬人在自然環境中的視覺、聽覺、運動等行為的人機界面的新技術。利用虛擬現實技術沉浸感、與計算機的交互功能和實時表現功能,建立相關的地質、水文地質模型和專業模型,進而實現對含水層結構、地下水流、地下水質和環境地質問題的虛擬表達。具體實現步驟包括建立虛擬現實數據庫、三維地質模型、地下水水流模型、專業模型和實時預測模型。虛擬仿真技術,則是在多媒體技術、虛擬現實技術與網絡通信技術等信息科技迅猛發展的基礎上,將仿真技術與虛擬現實技術相結合的產物,是一種更高級的仿真技術。虛擬仿真技術以構建全系統統一的完整的虛擬環境為典型特征,并通過虛擬環境集成與控制為數眾多的實體。實體可以是模擬器,也可以是其他的虛擬仿真系統,也可用一些簡單的數學模型表示。實體在虛擬環境中相互作用,或與虛擬環境作用,以表現客觀世界的真實特征。虛擬仿真技術的這種集成化、虛擬化與網絡化的特征,充分滿足了現代仿真技術的發展需求。1.2仿真的應用及過程1.2.1仿真的應用仿真技術得以發展的主要原因,是它所帶來的巨大社會經濟效益。50年代和60年代仿真主要應用于航空、航天、電力、化工以及其他工業過程控制等工程技術領域。在航空工業方面,采用仿真技術使大型客機的設計和研制周期縮短20%。利用飛行仿真器在地面訓練飛行員,不僅節省大量燃料和經費(其經費僅為空中飛行訓練的十分之一),而且不受氣象條件和場地的限制。此外,在飛行仿真器上可以設置一些在空中訓練時無法設置的故障,培養飛行員應付故障的能力。訓練仿真器所特有的安全性也是仿真技術的一個重要優點。在航天工業方面,采用仿真實驗代替實彈試驗可使實彈試驗的次數減少80%。在電力工業方面采用仿真系統對核電站進行調試、維護和排除故障,一年即可收回建造仿真系統的成本。現代仿真技術不僅應用于傳統的工程領域,而且日益廣泛地應用于社會、經濟、生物等領域,如交通控制、城市規劃、資源利用、環境污染防治、生產管理、市場預測、世界經濟的分析和預測、人口控制等。對于社會經濟等系統,很難在真實的系統上進行實驗。1.2.2仿真的過程仿真是對現實系統的某一層次抽象屬性的模仿。人們利用這樣的模型進行試驗,從中得到所需的信息,然后幫助人們對現實世界的某一層次的問題做出決策。仿真是一個相對概念,任何逼真的仿真都只能是對真實系統某些屬性的逼近。仿真是有層次的,既要針對所欲處理的客觀系統的問題,又要針對提出處理者的需求層次,否則很難評價一個仿真系統的優劣。傳統的仿真方法是一個迭代過程,即針對實際系統某一層次的特性(過程),抽象出一個模型,然后假設態勢(輸入),進行試驗,由試驗者判讀輸出結果和驗證模型,根據判斷的情況來修改模型和有關的參數。如此迭代地進行,直到認為這個模型已滿足試驗者對客觀系統的某一層次的仿真目的為止。可以從不同的角度對仿真加以分類。比較典型的分類方法是:根據仿真系統的結構和實現手段分類;根據仿真所采用的計算機類型分類;根據仿真時鐘與實時時鐘的比例關系分類;根據系統模型的特性分類。仿真有三個基本的活動,即系統建模(一次建模)、仿真建模(二次建模)和仿真試驗,聯系這三個活動的是計算機仿真的三要素,即系統、模型、計算(包括硬件和軟件)。系統系統計算機模型系統建模仿真試驗仿真建模圖1-1仿真的基本活動傳統上,“系統建模”這一活動屬于系統辨識技術范疇,仿真技術則側重于“仿真建模”,即針對不同形式的系統模型研究其求解算法,使其在計算機上得以實現。至于“仿真試驗”這一活動,也往往只注重“仿真程序”的校核,至于如何將仿真試驗的結果與實際系統的行為進行比較這一根本性的問題-驗證缺乏從方法學的高度進行研究。實際系統實際系統系統建模仿真建模程序設計模型運行修改系統模型修改仿真模型修改程序合理程序問題仿真模型數字模型仿真試驗仿真結果處理圖1-2仿真過程1.3課題的主要研究內容1.3.1海水運動曲線的模擬在計算機圖形學中有著很多的建模方法,在本課題研究中主要利用風噪聲理論,利用正弦函數以及一些數學表達式,研究和分析不同的取點,對曲線變化的影響。根據函數的趨勢進行合理的取點,使得取的點和曲線相位形成對應關系,模擬出一條符合海水運動特性且平滑的曲線。1.3.2海水三維曲面的建立海水的三維模型以風噪聲模型為基礎,把風噪聲模型模擬出的曲線作為海水三維模型的一個動態參數,即作為模擬海水函數的子函數,產生三維曲面,并不斷地加以改進,使曲面更隨機更柔和。通過加入光照模型,為增加圖形的真實感,模擬出滿意的海水形狀。1.3.3海水運動過程的仿真動態效果目的在于模擬不同時間海水的運動模型。由于風力,海水會隨著風向的運動產生不同的模型,通過調試程序,將靜態曲面轉為動態海水,并通過仿真,生成便于查看效果的avi動畫。并通過不斷調試,使動態效果更為逼真明顯。2三維海水仿真模型2.1風噪聲的應用風噪聲理論應用領域較為廣泛,如物理、生物、社會、醫學、天文、地理等系統中。風噪聲理論用于仿真自然界無規律的自然現象,有人將其用于樹木在風中搖動的過程,有人將其用于布料,羽毛等仿真,由于海水運動的隨機性質,在風中不規則的運動與他們有著相似的特點,在本課題中,用風噪聲理論建立海水的三維模型,將其應用于海水運動仿真的研究之中。本課題研究中風噪聲理論主要涉及與Perlin兩種噪聲。噪聲是一個連續函數,根據β而產生的不同形式的波形。Perlin噪聲是一個隨即函數,用于產生不斷變化的頻率與振幅的正弦函數。這兩種噪聲函數可應用于仿真自然界物體隨機運動過程。2.2MATLAB函數為了顯示三維圖形,MATLAB提供了各種各樣的函數。有一些函數可在三維空間中畫線,而另一些可以畫曲面與線格框架。另外,顏色可以用來代表第四維。當顏色以這種方式使用時,由于它不再象照片中那樣顯示信息的自然屬性色彩,而且也不是基本數據的內在屬性,所以它稱作偽彩色。2.2.1直接繪圖函數?fplotfplot命令的調用格式主要有:(1)fplot(fun,lims,str,tol):直接繪制函數y=fun(x)的圖形。其中,lims為一個向量,若lims只包含兩個元素則表示x軸的范圍:[xmin,xmax]。若lims包含四個元素則前兩個元素表示x軸的范圍:[xmin,xmax],后兩個元素表示y軸的范圍:[ymin,ymax]。str可以指定圖形的線型和顏色。tol的值小于1,代表相對誤差,默認值為0.002,即0.2%。>>fplot(@humps,[-1,5])
%在[-1,5]范圍內繪制函數humps上述命令中,@humps表示以函數句柄的形式引用函數。(2)fplot(fun,lims,n):用最少n+1個點來繪制函數fun的圖形,其中n大于等于1。>>fplot('x^2',[-11])
%在[-1,1]范圍內繪制函數y=x^2
圖2-1fpolt繪制圖(例)?ezplot,ezplot3
ezplot命令是繪制符號表達式的自變量和對應各函數值的二維曲線,ezplot3命令用于繪制三維曲線。
(1)曲線繪圖
語法:
ezplot(F,[xmin,xmax],fig)
%畫符號表達式F的圖形
說明:F是將要畫的符號函數;[xmin,xmax]是繪圖的自變量范圍,省略時默認值為[-2л,2л];fig是指定的圖形窗口,省略時默認為當前圖形窗口。
例:
>>y=sym('-1/3*x^3+1/3*x^4')
y=
-1/3*x^3+1/3*x^4
>>ezplot(y)
%繪制符號函數y在[-2л,2л]中的圖形
>>ezplot(y,[0,100])
%繪制符號函數y在[0,100]中的圖形
又例
>>x=sym('sin(t)');
>>y=sym('cos(t)');
>>z=sym('t');
>>ezplot3(x,y,z,[0,10*pi],'animate')
%繪制t在[0,10*pi]范圍的三維曲線
(2)曲面繪制
如>>ezmesh('sin(x)*exp(-t)','cos(x)*exp(-t)','x',[0,2*pi]);
ezmesh意為Easytouse3-Dmeshplotter,所以其調用格式簡單,繪圖方便。
圖2-2ezmesh繪制圖(例)
(3)其它繪圖命令
MATLAB還提供了如下表所示的較常用繪圖命令。這些命令的舉例都是對字符串函數進行繪圖,同樣也可用于符號表達式繪圖。
ezcontour畫等高線ezcontour('x*sin(t)',[-4,4])
ezcontourf畫帶填充顏色等高線ezcontourf('x*sin(t)',[-4,4])
ezmesh畫三維網線圖ezmesh('sin(x)*exp(-t)','cos(x)*exp(-t)','x',[0,2*pi])
ezmeshc畫帶等高線的三維網線圖ezmeshc('sin(x)*t',[-pi,pi])
ezpolar畫極坐標圖
ezpolar('sin(t)',[0,pi/2])
ezsurf畫三維曲面圖ezsurf('x*sin(t)','x*cos(t)','t',[0,10*pi])
ezsurfc畫帶等高線的三維曲面圖ezsurfc('x*sin(t)','x*cos(t)','t',[0,pi,0,2*pi])2.2.2網格法繪制三維曲面⑴產生三維數據在MATLAB中,利用meshgrid函數產生平面區域內的網格坐標矩陣。其格式為:x=a:d1:b;y=c:d2:d;[X,Y]=meshgrid(x,y);語句執行后,矩陣X的每一行都是向量x,行數等于向量y的元素的個數,矩陣Y的每一列都是向量y,列數等于向量x的元素的個數。⑵繪制三維曲面的函數surf函數和mesh函數的調用格式為:mesh(x,y,z,c)surf(x,y,z,c)一般情況下,x,y,z是維數相同的矩陣。x,y是網格坐標矩陣,z是網格點上的高度矩陣,c用于指定在不同高度下的顏色范圍。例:用曲面圖表現函數y=x^2+y^2。clf,x=-4:4;y=x;[X,Y]=meshgrid(x,y);Z=X.^2+Y.^2;surf(X,Y,Z);%或mesh(X,Y,Z)
圖2-4三維曲面繪制圖(例)2.3海水三維模型的建立與調試海水三維模型的構建是本課題的重點之一,在通過學習與研究之后,深知海水運動特性的了解是基礎,計算機圖形學和面向對象的編程技術是工具,三者有效地結合是本課題得以順利完成的關鍵。在本課題中,對海水運動特性進行分析,要得到海水運動的3D效果,這就要求較適當地設置二、三維仿真的參數,最后才能實現較好的仿真效果。由于海水運動時隨機的,還具有不對稱性、不規則性,因此,可采用曲面造型的方法來定義海水的三維模型。三維模型從一系列點開始,理清了各關鍵點的坐標以及各點之間的連接關系之后,先構成柔和曲線,然后由這些曲線構成曲面,最后形成一個三維模型。在此基礎上,只需對三維模型進行一些紋理以及光照的修飾,就能得到整塊海水在計算機中的三維仿真顯示情況。建模步驟流程:取點二維曲線三維曲面圖2-5建模步驟流程圖2.3.1點到二維曲線曲線是動點運動時,方向連續變化所成的線。在平面直角坐標系內,如果一條曲線上的點都能滿足符合某種條件,而滿足該條件的點又均位于這條曲線上,那么我們就可以把這種對應關系寫成一個確定的函數式:y=f(x)這個函數式就稱為曲線的方程;同樣,該曲線即為這個方程的曲線。繪制曲線使用的是matlab軟件中的plot函數。plot是繪制二維圖形的最基本函數,它是針對向量或矩陣的列來繪制曲線的。也就是說,使用plot函數之前,必須首先定義好曲線上每一點的x及y坐標,常用格式為:
(1)plot(x)當x為一向量時,以x元素的值為縱坐標,x的序號為橫坐標值繪制曲線。
(2)plot(x,y)以x元素為橫坐標值,y元素為縱坐標值繪制曲線。
(3)plot(x,y1,x,y2,…)以公共的x元素為橫坐標值,以y1,y2,…元素為縱坐標值繪制多條曲線。Plot是最常用的繪圖函數,用于繪制線性二維圖。有多條曲線時,循環使用由坐標軸顏色順序屬性定義的顏色,以區別不同的曲線;之后再循環使用由坐標軸線型順序屬性定義的線型,以區別不同的曲線。要生成理想的曲線,就要采用合適的算法和公式來得到。如果不按照正確的算法來取點,則無法得到符合預期效果的曲線。以下兩幅圖片均是隨機取點得到的錯誤曲線圖:圖2-6錯誤曲線圖(一)圖2-7錯誤曲線圖(二)本課題要得到正確的曲線,需要采用風噪聲算法。這種算法主要是利用三角函數的幅度變化,以及對曲線的分段來進行構圖,然后根據取點來編寫出函數,完成所需要的曲線,并觀察效果。風噪聲函數的基本公式如下:(2-3)公式2-3為風噪聲函數的基本公式,即為一個正弦函數,其中A表示該點的振幅。表示該點的相位。顯然Y是取決于該點的相位的。*Nπ且R為整數(2-4)公式2-4為相位的算法。其中代表取點的范圍(即曲線分割的段數)。代表的是范圍中第R個點的X坐標的值。表示的是終點的X坐標的值。而的取值范圍就是[0,Nπ]。為了表示曲線的隨機性,我們需要用到以下幾個公式:(2-5)(2-6)(2-7)在公式2-5中,K表示兩相鄰點的所在直線的斜率。利用求出的斜率K,并根據公式2-6可以求出相鄰兩點所在直線的截距常數b。最后通過公式2-7,可以表達出每段曲線中各個幅度之間的相位關系。根據風噪聲函數來進行取點,根據幅度的變化來決定各個點的坐標值。我的取點坐標值詳細情況如下表2-1所示:表2-1正確曲線(一)各點坐標X的坐標值對應的相位(°)y的坐標值y的坐標值減中線值(y-11)X0400-60Y0110X1480-24Y14534X256012Y27-4X364048Y3-25-36X472084Y4-36-47X5800120Y5-27-38X6880156Y6-7-18X7960192Y72918X81040228Y85847X91120264Y93726X101200300Y105-6X111280336Y113524X121360372Y126150X131440408Y134029X141520444Y14-12-23X151600480Y15-45-56由表中的各點關系分析得,曲線的初始相位為-1/3π。曲線的X坐標從400到1600,兩端點之間的距離是1200;Y坐標隨著角度的變化而變化著,其變化量就由自己在取點時控制,Y的中線值為11(即Y所有取值的平均值)。首先計算第一條曲線中第一段的A值,利用所取各點坐標值,以及函數的特性,同時,通過一些數學函數的計算與前后關鍵點之間關系的分析,得到關系式A=x*k+b,并進一步深入地分析與探究,找到了簡單合適的算法,避免了一系列繁瑣的過程,減少了復雜的計算。曲線中第一二段的計算過程如下:從表中可以看出第一段X從X0=400到X1=480,X的變化范圍為[400,1600],所在的相位范圍是(0到3*pi),則公式2-4中=480,=1600,=400,可得第一段相位φ=π/5,再將Y=34帶入公式2-3中,可得A=57.845,根據Y=A*sin(3*pi*(X-400)/1200-pi/3)就能畫出第一段曲線。運用公式A2=y2/sin(3*pi*(x2-400)/1200-pi/3)可得第二段的振幅A2,然后用公式(2-5),即k=(A2-A1)/80,來得出第二段起始點和終點所在直線的斜率K,根據這個斜率K,通過公式(2-6)b=A1-k*x1來的到這條直線的截距b,最后通過公式(2-7)A=k*X+b,就能得到第二段曲線X坐標值和振幅A值變化之間的線性關系。曲線共由15段組成,下面程序是其中的第一二段,完整的曲線程序見附錄。clearclcaa(1)=400;A1=57.845;x1=480;x2=560;X1=[aa(1):aa(1)+79];X2=X1+80;y1=34;y2=-4;A2=y2/sin(3*pi*(x2-400)/1200-pi/3);k2=(A2-A1)/80;b2=A1-k2*x1;a1=A1*sin(3*pi*(X1-400)/1200-pi/3);plot(X1,a1,'-');holdon;A=k2*X2+b2;a2=A.*sin(3*pi*(X2-400)/1200-pi/3);plot(X2,a2,'-');holdon;運用MATLAB運行后結果如圖2-8所示:圖2-8正確曲線圖(一)在掌握了曲線的生成方法之后,運用同樣方法確定了另外一條減少了取點個數的曲線,如下:表2-2正確曲線(二)各點坐標X的坐標值對應的相位(°)y的坐標值y的坐標值減中線值(y-12)X0400-60Y0120X150030Y14937X2600120Y27-5X3700210Y32614X4800300Y44836X5900390Y5-25-37X61000480Y6-33-45編寫程序,運用MATLAB軟件運行之后顯示結果如圖2-9:圖2-9正確曲線圖(二)2.3.2二維曲線到三維曲面順利生成了二維曲線之后,接著就是要建立三維曲面。主要的思路是在二維曲線的基礎上增加一個Z坐標,使得平面坐標系變成空間坐標系,從而得到了二維到三維的效果。在繪制曲面過程中主要用到以下幾個命令:?Meshgird命令:Meshgird命令的意義是在兩個坐標軸上的點在平面上畫格。它用于從數組a和b產生網格。生成的網格矩陣A和B大小是相同的。它也可以是更高維的。生成size(b)Xsize(a)大小的矩陣A和B。它相當于a從一行重復增加到size(b)行,把b轉置成一列再重復增加到size(a)列。因此命令等效于:A=ones(size(b))*a;(2-8)B=b'*ones(size(a))(2-9)ones(size(b))是指產生一個和矩陣b的位數相同的全1矩陣。?Surf命令:Surf命令是繪制著色表面圖;surf(X,Y,Z):X,Y利用分格函數[X,Y]=meshgrid(x,y)其中x和y是向量,通過meshgrid函數就可將x和y指定的區域轉換成為矩陣X和Y。這樣在繪圖時就可以先用meshgrid函數產生在x-y平面上的二維的網格數據,再以一組z軸的數據對應到這個二維的網格,即可畫出三維的曲面。?Light命令:Light命令式用來生成一個光照對象。該對象除了具有其他對象也具有的通用屬性外,還具有三個非常重要屬性:Color:光線的顏色。Style:shezhi值為infinite(無窮遠)或為local(附近)。Position:光源所處的位置,參數形式為[a,b,c],單位使用當前坐標單位。如果光源設為附近,該參數表示光源位置;如果光源被設置成為無窮遠,該參數表示光源方向。用light函數創建光源對象,調用格式:Light(‘propertyName’,‘propertyValue,…),在當前坐標軸對象中創建光源對象,‘propetyName’主要包括color、position和style等屬性,color的值用colorspec確定,默認為白色;position由[x,y]坐標確定,默認值為[101];style的值為infinite(無限遠處的平行光源)或local(點光源),默認值為infinite.曲面主程序主要由這三個函數組成,下面是將二維曲線轉為三維曲面的主程序及程序說明:clear%清除變量clc%清屏X=400:1599%確定畫圖時橫坐標變化范圍Y=400:1599%確定畫圖時縱坐標變化范圍[X,Y]=meshgrid(X,Y)%生成網格化,把參數X,Y由向量變成矩陣[XX,YY]=meshgrid(zhenfu1(X),zhenfu1(Y))%程序調用Z=0.3*XX.*exp(-0.2*X)+0.8*YY%生成三維模型surfl(X,Y,Z)%顯示三維曲面模型light('Position',[-30-2010])%確定光源的位置color=[0.3,0.5,0.6]%確定投射光的顏色colormap(color)%顏色的映射shadinginterp%對圖形進行陰影處理主程序中調用了一個子函數,也就是我們的振幅函數。振幅函數決定了相位的變化以及X,Y的取值范圍。振幅函數和畫曲線程序取的數據是一致的,程序大體的框架結構也相似。下面是我的振幅函數的大致程序:functiona=zhenfu(aa)%定義函數A1=57.845;%定義第一個點振幅aa(1)=400;x1=400;%定義第一段曲線起點的橫坐標x1x2=480;%定義第二段曲線終點的橫坐標x2X1=[aa(1):aa(1)+79];%定義第一段曲線橫坐標的變化范圍和步長X2=X1+80;%定義第二段曲線橫坐標的變化范圍和步長y1=34;%定義第一段曲線起點的縱坐標y1y2=-8;%定義第二段曲線起點的縱坐標y2A2=y2/sin(3*pi*(x2-400)/1200-pi/3);%定義振幅計算公式k2=(A2-A1)/80;b2=A1-k2*x1;a1=A1*sin(3*pi*(X1-400)/1200-pi/3);%得出第一段振幅A=k2*X2+b2;a2=A.*sin(3*pi*(X2-400)/1200-pi/3);%得出第二段振幅x2=560;x3=640;X3=X2+80;y2=-4;y3=-36;A3=y3/sin(3*pi*(x3-400)/1200-pi/3);k3=(A3-A2)/80;b3=A2-k3*x2;A=k3*X3+b3;a3=A.*sin(3*pi*(X3-400)/1200-pi/3);x14=1520;x15=1600;X15=X14+80;y14=-23;y15=-56;A15=y15/sin(3*pi*(x15-400)/1200-pi/3);k15=(A15-A14)/80;b15=A14-k15*x14;A=k15*X15+b15;a15=A.*sin(3*pi*(X15-400)/1200-pi/3);a=[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15];%把12段的振幅拼接起來得出最終的振幅End為了能夠便于計算,我們把第一段的振幅(x0到x1這段)看做一個點,并計算出那個點的振幅(計算方法在上一節中已經介紹過),視作實際意義上第一段(x0點到x1點這段)的振幅。有了第一段A的值,就可以通過套用計算公式來計算后段程序的數據。振幅函數完成以后,主函數通過函數調用,就可以生成三維曲面了。在函數調用的時侯需要注意的是,由于主程序里涉及到矩陣的運算,即:[X,Y]=meshgrid(X,Y)[XX,YY]=meshgrid(zhenfu1(X),zhenfu1(Y))Z=0.3*XX.*exp(-0.2*X)+0.8*YY根據上面的式子,我們知道Z的表達式中包含了矩陣的運算,則在取X、Y變化范圍時必須保證X與Y包含的點數要相同,若所取范圍內元素個數不相等,振幅函數將不能正常運行。這里所說的點數相同,指的不是兩者的范圍要完全一樣,可以取X=400:1599,Y=400:1599,很顯然,X與Y之間的數據相等;也可以取X=400:1599,Y=400:.5:999.5,X與Y之間包含的數據都是1200個。所以,在定義X與Y的變化范圍時,只要保證二者的元素個數相同就可以了。在完成了振幅函數的編寫后,就可以開始調試主程序了。主程序里調用振幅函數的語句,即[XX,YY]=meshgrid(zhenfu1(X),zhenfu1(Y)),可以使用相同的振幅函數,也可以使用不相同的。主程序調試,主要是不斷改變生成的Z模型來達到想要的效果。當使用Z=0.3*XX.*exp(-0.2*X)+0.8*YY*sin(X)模型時,通過運用MATLAB軟件運行之后顯示結果如圖2-10:圖2-10錯誤曲面圖(一)當使用Z=0.3*XX.*exp(-0.2*X)*sin(X)+cos(YY)模型時,通過運用MATLAB軟件運行之后顯示結果如圖2-11:圖2-11錯誤曲面圖(二)很明顯,上面兩個模型生成的曲面都不平滑,且都不符合海水特性。當使用Z=0.3*XX.*exp(-0.2*X)+0.8*YY模型,通過運用MATLAB軟件運行之后顯示結果如圖2-12:圖2-12曲面調試圖(一)這個模型生成的曲面比之前的曲面平滑了許多,也有接近海水的形態了,但是在Z方向上的線條太過生硬,且不夠隨機。還需要在這個基礎上進行調試。當使用Z=XX.*sin(-X./500-Y./300)-YY.*exp(-Y)模型,通過運用MATLAB軟件運行之后顯示結果如圖2-13:圖2-13曲面調試圖(二)這個模型生成的曲面看起來基本具備海水的特征了。由于之前曲線的取點為1200個,考慮到點數過多容易使畫面看起來較凌亂,于是我改為在圖2-9曲線的基礎上生成曲面,在主程序中X=400:1:999,Y=400:.5:699.5,這樣取點只為原來的一半600個。并用了兩個不同的振幅函數,并在其前面加了系數,使[XX,YY]=meshgrid(2*zhenfu1(X^2),3*zhenfuy(Y)),將上個Z表達式中的系數進行修改調試,發現只要改變sin(-X./50-Y./50)的系數,就能得到不同波浪個數的曲面,下面兩圖為Z=XX.*sin(-X./50-Y./50)-YY.*exp(-Y)(圖2-14)和Z=XX.*sin(-X./150-Y./150)-YY.*exp(-Y)(圖2-15)時,得到的不同波浪個數的曲面:圖2-14曲面調試圖(三)圖2-15曲面調試圖(四)又經過不斷的調試,當使Z的表達式為Z=XX.*sin(-X./400-Y./180)-YY.*exp(-Y)時,得到了較為滿意的曲面,如圖2-16所示:圖2-16曲面調試圖(五)上面提到過,生成矩陣時所用的振幅函數可以不相同,為了使生成的曲面更加隨機,我使用了兩個不同的振幅函數。在生成矩陣時我將兩個振幅函數的位置調換了一下,即使[XX,YY]=meshgrid(2*zhenfuy(X^2),3*zhenfu1(Y)),通過MATLAB軟件運行后得到如圖2-17的曲面圖:圖2-17曲面調試圖(六)通過觀察可以知道,與圖2-16的曲面相比,就是在y方向的波浪個數不相同,曲面還是比較平滑,符合海水特性。3動態海水的模擬3.1海水運動過程的算法海水模型是通過對于真實自然界海水的觀察,利用鳳噪聲理論進行建模。簡單的海水動力學模型可以用正弦波來表示海水的運動,運動方程如下: (3-1)波浪中的頂點向量是x,y,time,period的函數 (3-2)(3-3)=1海水在自然環境的影響下,其運動形式在不斷變化。為了模擬海水的運動需要對海水運動的規律進行總結。在海浪的統計模型中,浪高h(x,t)是隨著給定的位置和時間而隨機變化的,它把浪的高度域分成一組具有不同振幅和相位的凹波。假定知道這些波的振幅和相位,這樣就可以用快速傅立葉變換法估計其高度值:(3-4)其中是我們估計點的水平高度,K=2/,(K,t)是復數,表示波在時刻的振幅和相位。由于我們使用的是離散傅立葉變換,因此只有有限個波長和位置。假定是高度,是網格分辨率(對FFT而言必須為2的n次方,n為整數),那么就可以把波長記為:(3-5)其中n,m:一r/2≤n+≤r/2,r必須為2的倍數.同時為了繪制波浪.必須計算高度域方向的梯度值來獲得向量。比較傳統的方法是通過計算差值,這可以通過相鄰的網格點來近似得到,但對于那些小波長的傾斜波來講這可能非常糟糕由于現在計算機的計算能力驚人,所以可用下面的公式來估計其總和:(3-6)到現在為止已經知道可以用波的振幅和相位的復數域得到高度域。這樣只要得到振幅和相位本身,就可以繪制海浪的動畫效果。3.2海水動態仿真的實現與調試離散模型動態化分為以下幾個步驟:(1)確定動畫的幀數nframes(2)畫出圖形(3)為nframes幀幅圖形分配足夠內存空間 (4)用getframe生成動畫的數據矩陣(5)以每秒n幅的速度播放動畫將靜態曲面轉為動態化的主程序如下:clearclcs=1;x1=0;%確定起始點橫坐標x1及其增量nframes=8;%確定動畫總幀數aviobj=avifile('donghua.avi','fps',1);%初始化建立AVI文件;fork=1:nframesx1=x1+s;%確定畫圖時橫坐標終止值x1X=400+x1:999+x1Y=400+x1:.5:699.5+x1[X,Y]=meshgrid(X,Y)[XX,YY]=meshgrid(2*zhenfu1(X^2),3*zhenfuy(Y))%程序調用Z=0.2*XX.*sin(-X./400-Y./180)-YY.*exp(-Y);surfl(X,Y,Z)light('Position',[-30-2010])color=[0.3,0.5,0.6]colormap(color)shadinginterp%定義坐標軸范圍M(k)=getframe;%將當前圖形存入矩陣M(k)Movie=getframe(gcf);%保存動畫aviobj=addframe(aviobj,Movie);%保存動畫endaviobj=close(aviobj);%關閉文件,結束數值仿真模擬過程在仿真動態海水時,由于取點較多,數據量大,所以需要將其運動過程轉為動畫avi模式保存起來,在查看仿真效果時改善其不流暢的問題,便于查看仿真效果。在初始的調試過程中,結果生成的動畫海水的動態效果并不明顯。通過對參數的調試,我發現當增量s改變時,海水的動態效果也會跟著發生變化。當s=1時,海水的運動幅度很小,并不明顯;當s=15時,海水運動的幅度變大,易于觀察。我們可以將增量s不同的情況下生成的海水運動看成不同風速下海水產生的形態,由于風速隨機的,那么s的取值也要隨機。在這里,我使用了隨機函數rand。我令s=10*rand+10*rand,rand產生的是0到1之間的隨機數,則我取的s的隨機值的范圍就是[0,20],每運行一次,就可以得到不同的s,則每次生成的動態海水都有不同的形態,這樣,海水運動就更具隨機性了。4總結4.1本課題中所完成的工作①熟悉MATLAB的操作界面。②了解風噪聲函數,掌握基本的風噪聲函數公式推導。③通過分析與研究海水的三維形狀,并運用風噪聲理論通過計算合理取點確定二維曲線。④從海水的二維曲線入手,建立三維模型,不斷調試,得到較理想的海水曲面。⑤分析海水的運動特征,用數學模型表示海水的動態運動過程,形成海水動態運動的效果。⑥將海水運動過程保存為avi格式的動畫,便于觀察海水動態效果。⑦結合理論知識、建模方法與步驟以及本課題的研究思路,編寫程序,運用MATLAB軟件進行程序調試,獲得最佳仿真效果。4.2遇到的問題及解決①最初在沒有透徹理解曲線取點的計算方法是隨機取點,導致無法生成期望的曲線,后來經過研究學習,了解了正確的取點方法,得到了正確的曲線。②二維曲線到三維曲面的轉化時,未注意主函數內矩陣元素的個數要保持一致,導致振幅程序無法正確運行,經過老師的指導,更正了取點范圍。③得到的三維曲面不夠平滑,效果不佳。經過模型的不斷更改,得到了較為理想的海水曲面。④生成的動態效果不明顯,不易觀察。不斷調試主程序中的參數,加大運動幅度,改善動態效果。4.3本課題的研究結論隨著現代科學技術快速發展,對真實感圖形技術提出了越來越高的要求,三維動態模型的模擬需要許多技術的綜合,在很多方面都有很大的研究意義。通過本課題的研究使得我對三維海水的特性知識了解更加透徹。同時,對于有關風噪聲的相關理論知識也有了更進一步的學習與掌握。在本課題的研究中,運用了風噪聲函數進行建模繪制曲線;將二維平面曲線轉為三維空間曲面;接著將靜態海水曲面動態化,得到個具有真實感的三維動畫模型。這樣就完成了海水運動仿真過程。由于時間比較緊迫,很多方面沒有進行深入的研究,如怎樣減少運算的復雜度等。由于海水仿真技術還在一個相對發展的過程中,所以還是存在一定的不足之處,諸如海水波浪拍擊所成浪花之類的現象的仿真,這將是我們下一步研究的重點。致謝光陰荏苒,大學的生涯即將結束,四年的學習生活使我受益匪淺。經歷幾個月的磨礪,畢業設計終于完成。整個設計過程從課題的了解,資料的收集,程序的調試到最后論文的完成,我得到了許多幫助。在此我要向他們表達最誠摯的謝意。我要感謝悉心指導我完成畢業設計的李蓓蓓老師。李老師是一名有豐富教學經驗的優秀教師。她培養了我的堅韌的意志,自主創新能力及努力追求嚴謹的工作態度。從拿到畢設時的無從下手到論文的最終完成,李老師給了我非常大的幫助,在我遇到難題時為我耐心講解,幫助我開拓研究思路。同時,我還要感謝我的輔導員董巧新老師,感謝董老師幾年來在學習、生活、思想上給予我的關心、幫助和支持,給了我很大的信心。也要感謝我的班導師陳力平老師,對我嚴格要求,培養了我發現問題和解決問提的能力。他細心的教導跟嚴謹的思路帶給我無限的啟迪。感謝在大學校園中教過我的每一位老師幾年來對我的諄諄教誨。因為有了他們嚴格、無私、高質量的教導,我才能在學習過程中迅速提升能力。因為有了他們,我才可以順利的完成所有學習任務。感謝四年來一直與我互勉互勵的同學們,在大家的共同努力下,我們始終擁有良好的學習環境,也正因為有他們,我的學習生活增添了許多溫馨與樂趣。我很榮幸能在這樣一個集體中度過大學四年。感謝我的家人,在生活和學習中給予我的支持與理解。感謝參與我論文答辯的眾位老師,他們給了我審視四年學習成果的機會。在論文即將完成之際,我在這里再次向所有給予我無言幫助的師長、同學、朋友致以深深的謝意!參考文獻[1]趙書蘭.MATLABR2008圖像與動畫編程實例[M].北京:化學工業出版社,2009;[2]龔聲蓉,劉純平,王強等.數字圖像處理與分析[M].北京:清華大學出版社,2006;[3]徐金明,張孟喜,丁濤.MATLAB實用教程[M].北京:清華大學出版社,2005;[4]梅志紅,楊萬銓.MATLAB程序設計基礎及其應用[M].北京:清華大學出版社,2005;[5]張汗靈.MATLAB在圖像處理中的應用[M].清華大學出版社2005[6]岡薩雷斯.數字圖像處理(MATLAB版)[M].電子工業出版社2005-09-01[7]殷銘張興華戴先中.基于的遺傳算法實現[J].電子應用技術2000年第一期[8]陳桂明等.MATLAB數理統計(6.x)[M].北京:科學出版社2002年[9]RichardAJohnson,DeanWWhichern.AppliedMultivariateStatisticalAnalysis[M].北京:清華大學出版社2008年[10]BierEA,SloanKR.Two—parttexturemappings[J].IEEEComputerGraphicsandApplication,1986,6(9):40~53.[11]BreenDavidE,HouseDonaldH,andWoznyMichaelJ.“Predictingthedrapeofwovenclothusinginteractingparticles”[J],In:ProcofSIGGRAPH94,Computergraphicsproceedings,annualconferenceseries,ACMPress/ACMSIGGRAPH,pp.365-372,1994.[12]MichelCarignan,YingYang,NadiaMagnenat-Thalmann,andDanielThal-mann,“Dressinganimatedsyntheticactorswithcomplexdeformableclothes”[J].ComputGraph(ProcACMSIGGRAPH92),ACMPress,pp.99-104,1992.[13]R.F.Sarraga.ComputermodelingofsurfaceswitharbitraryShapes.IEEEComputerGraphicsandApplications(1990),67-77.附錄1、二維曲線生成程序曲線一:clearclcaa(1)=400;A1=57.845;x1=480;x2=560;X1=[aa(1):aa(1)+79];X2=X1+80;y1=34;y2=-4;A2=y2/sin(3*pi*(x2-400)/1200-pi/3);k2=(A2-A1)/80;b2=A1-k2*x1;a1=A1*sin(3*pi*(X1-400)/1200-pi/3);plot(X1,a1,'-');holdon;A=k2*X2+b2;a2=A.*sin(3*pi*(X2-400)/1200-pi/3);plot(X2,a2,'-');holdon;x2=560;x3=640;X3=X2+80;y2=-4;y3=-36;A3=y3/sin(3*pi*(x3-400)/1200-pi/3);k3=(A3-A2)/80;b3=A2-k3*x2;A=k3*X3+b3;a3=A.*sin(3*pi*(X3-400)/1200-pi/3);plot(X3,a3,'-');holdon;x3=640;x4=720;X4=X3+80;y3=-36;y4=-47;A4=y4/sin(3*pi*(x4-400)/1200-pi/3);k4=(A4-A3)/80;b4=A3-k4*x3;A=k4*X4+b4;a4=A.*sin(3*pi*(X4-400)/1200-pi/3);plot(X4,a4,'-');holdon;x4=720;x5=800;X5=X4+80;y4=-47;y5=-38;A5=y5/sin(3*pi*(x5-400)/1200-pi/3);k5=(A5-A4)/80;b5=A4-k5*x4;A=k5*X5+b5;a5=A.*sin(3*pi*(X5-400)/1200-pi/3);plot(X5,a5,'-');holdon;x5=800;x6=880;X6=X5+80;y5=-38;y6=-18;A6=y6/sin(3*pi*(x6-400)/1200-pi/3);k6=(A6-A5)/80;b6=A5-k6*x5;A=k6*X6+b6;a6=A.*sin(3*pi*(X6-400)/1200-pi/3);plot(X6,a6,'-');holdon;x6=880;x7=960;X7=X6+80;y6=-18;y7=18;A7=y7/sin(3*pi*(x7-400)/1200-pi/3);k7=(A7-A6)/80;b7=A6-k7*x6;A=k7*X7+b7;a7=A.*sin(3*pi*(X7-400)/1200-pi/3);plot(X7,a7,'-');holdon;x7=960;x8=1040;X8=X7+80;y7=18;y8=47;A8=y8/sin(3*pi*(x8-400)/1200-pi/3);k8=(A8-A7)/80;b8=A7-k8*x7;A=k8*X8+b8;a8=A.*sin(3*pi*(X8-400)/1200-pi/3);plot(X8,a8,'-');holdon;x8=1040;x9=1120;X9=X8+80y8=47;y9=26;A9=y8/sin(3*pi*(x9-400)/1200-pi/3);k9=(A9-A8)/80;b9=A8-k9*x8;A=k9*X9+b9;a9=A.*sin(3*pi*(X9-400)/1200-pi/3);plot(X9,a9,'-');holdon;x9=1120;x10=1200;X10=X9+80y9=26;y10=-6;A10=y9/sin(3*pi*(x10-400)/1200-pi/3);k10=(A10-A9)/80;b10=A9-k10*x9;A=k10*X10+b10;a10=A.*sin(3*pi*(X10-400)/1200-pi/3);plot(X10,a10,'-');holdon;x10=1200;x11=1280;X11=X10+80;y10=-6;y11=24;A11=y10/sin(3*pi*(x11-400)/1200-pi/3);k11=(A11-A10)/80;b11=A10-k11*x10;A=k11*X11+b11;a11=A.*sin(3*pi*(X11-400)/1200-pi/3);plot(X11,a11,'-');holdon;x11=1280;x12=1360;X12=X11+80;y11=24;y12=50;A12=y11/sin(3*pi*(x12-400)/1200-pi/3);k12=(A12-A11)/80;b12=A11-k12*x11;A=k12*X12+b12;a12=A.*sin(3*pi*(X12-400)/1200-pi/3);plot(X12,a12,'-');holdon;x12=1360;x13=1440;X13=X12+80;y12=50;y13=29;A13=y13/sin(3*pi*(x13-400)/1200-pi/3);k13=(A13-A12)/80;b13=A12-k13*x12;A=k13*X13+b13;a13=A.*sin(3*pi*(X13-400)/1200-pi/3);plot(X13,a13,'-');holdon;x13=1440;x14=1520;X14=X13+80;y13=29;y14=-23;A14=y14/sin(3*pi*(x14-400)/1200-pi/3);k14=(A14-A13)/80;b14=A13-k14*x13;A=k14*X14+b14;a14=A.*sin(3*pi*(X14-400)/1200-pi/3);plot(X14,a14,'-');holdon;x14=1520;x15=1600;X15=X14+80;y14=-23;y15=-56;A15=y15/sin(3*pi*(x15-400)/1200-pi/3);k15=(A15-A14)/80;b15=A14-k15*x14;A=k15*X15+b15;a15=A.*sin(3*pi*(X15-400)/1200-pi/3);plot(X15,a15,'-');holdon;曲線二:aa(1)=400;A1=37;x1=500;x2=600;X1=[aa(1):aa(1)+99];X2=X1+100;y1=37;y2=-5;A2=y2/sin(3*pi*(x2-400)/600-pi/3);k2=(A2-A1)/100;b2=A1-k2*x1;a1=A1*sin(3*pi*(X1-400)/600-pi/3);plot(X1,a1,'-');holdon;A=k2*X2+b2;a2=A.*sin(3*pi*(X2-400)/600-pi/3);plot(X2,a2,'-');holdon;x2=600;x3=700;X3=X2+100;y2=-5;y3=14;A3=y3/sin(3*pi*(x3-400)/600-pi/3);k3=(A3-A2)/100;b3=A2-k3*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 睡眠質量提升與養生保健技巧考核試卷
- 燈具國際貿易風險與應對策略考核試卷
- 鋅錳電池的電極材料在長期儲存中的性能保持考核試卷
- 銀發族養生保健特殊關注考核試卷
- 貓狗常見疾病防治指南
- 冬季小學生疾病預防指南
- 食源性疾病主動監測體系構建與應用
- Orchinol-生命科學試劑-MCE
- 超神數學-高考數學總復習拔高篇(二輪)專題19平面向量中的取值范圍問題(含答案或解析)
- 2025年流媒體平臺競爭格局下的內容創新實踐與案例分析
- “安全生產課件:如何預防工傷事故”
- 《教育學原理》馬工程教材第二章教育與社會發展
- 西藏農村公路管理辦法
- 野外生存優秀課件
- 國際投資學教程(第四版)綦建紅答案
- 福建省福州市福建師大附中2023年自主招生樣卷--數學試卷
- GB/T 16622-2022壓配式實心輪胎規格、尺寸與負荷
- GB/T 3620.1-2016鈦及鈦合金牌號和化學成分
- GB/T 2878.2-2011液壓傳動連接帶米制螺紋和O形圈密封的油口和螺柱端第2部分:重型螺柱端(S系列)
- GB/T 23858-2009檢查井蓋
- GB/T 23764-2009光催化自清潔材料性能測試方法
評論
0/150
提交評論