三角函數(shù)模型的簡單應用_第1頁
三角函數(shù)模型的簡單應用_第2頁
三角函數(shù)模型的簡單應用_第3頁
三角函數(shù)模型的簡單應用_第4頁
三角函數(shù)模型的簡單應用_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、三角函數(shù)模型的簡單應用2014-2015南春中學 103班組長:李爍瀚 組員:周約翰 馮文二 蔡岱翰指導老師:李錦純課題研究的開展課題研究:探究三角函數(shù)模型在電腦繪圖中的應用。研究目的:開闊視野,增長見識,提高我們的數(shù)學素養(yǎng),使我們能更好地學習和應用數(shù)學。研究過程:1.準備階段:從各種渠道收集相關資料2.實施階段: 確定研究內(nèi)容 從互聯(lián)網(wǎng)和圖書館查閱相關資料 小組內(nèi)交流討論成果 編寫相關程序3.總結階段:由組長整理和匯總相關資料和成果并寫成報告。研究成果:三角函數(shù)學的發(fā)展,由起源迄今差不多經(jīng)歷了三四千年之久,在古代,由于古代天文學的需要,為了計算某些天體的運行行程問題,需要解一些球面三角形,在

2、解球面三角形時,往往把解球面三角形的問題歸結成解平面三角形,這些問題的積累便形成了所謂古代球面三角學古代平面三角學;雖然古代球面三角學的發(fā)展早于古代平面三角學,但古代平面三角學卻是古代球面三角學的發(fā)展基礎。三角函數(shù)在數(shù)學中屬于初等函數(shù)里的超越函數(shù)的一類函數(shù)。它們本質(zhì)上是任意角的集合與一個比值的集合的變量之間的映射。由于三角函數(shù)具有周期性,所以并不具有單射函數(shù)意義上的反函數(shù)。三角函數(shù)在復數(shù)中有重要的應用,在物理學中也是常用的工具。由于三角函數(shù)的周期性,它并不具有單值函數(shù)意義上的反函數(shù)。 在實際生活中,有許多周期現(xiàn)象可以用三角函數(shù)來模擬,如物理中簡諧振動、交流電中的電流、潮汐等,都可以建立三角函數(shù)

3、的模型利用三角函數(shù)的性質(zhì)解決有關問題;很多最值問題都可以轉化為三角函數(shù)來解決,如天氣預報、建筑設計、航海、測量、國防中都能找到神奇的三角函數(shù)的影子。因而三角函數(shù)解決實際問題應用極廣、滲透能力很強。 在電腦程序的開發(fā)中,通常需要圖像的繪制。通常情況下,可以在開發(fā)環(huán)境下使用直線、形狀等圖形控件直接繪圖。具有占用系統(tǒng)資源少、運行速度快、代碼簡潔、可以在開發(fā)界面直接瀏覽完成圖像等特點。然而,控件繪圖法無法進行動態(tài)繪圖,但利用三角函數(shù)創(chuàng)作曲線、著色、模型、動畫可以產(chǎn)生不錯的效果。 下面舉一實例:簡單曲線畫法最簡單曲線當屬圓形用javascript語句可表示成:moveTo(a,0);for(i=0;i&

4、lt;n;i+) x=a*Math.cos(i*2*Math.PI/n);y=b*Math.sin(i*2*Math.PI/n);lineTo(x,y);這里a=b,為圓形,否則ab為橢圓。如果把y=b*Math.sin(i*2*Math.PI/n)改成y=b*Math.sin(i*4*Math.PI/n),則圓形變成8字形。如果寫成x=a*Math.cos(i*m*Math.PI/n);y=b*Math.sin(i*(n) *Math.PI/n);其中m不能為偶數(shù),n=m+1,或n=m-1。則圖形為: 圖1 例子中,更改m、n變量產(chǎn)生的結果完成一個圖形后,對這個函數(shù)圖像進行修飾,對函數(shù)圖像進

5、行修飾的過程中,應用加修飾、乘修飾和嵌入修飾。通過利用正弦余弦的嵌入方式只改變b2,在曲線的交匯點處產(chǎn)生偏移,防止重合,產(chǎn)生藤編效果。 圖2 通過加修飾生成的曲線 圖3通過乘修飾生成的曲線圖4 利用嵌入修飾生成的花籃圖5藤編效果曲線著色使用周期漸變效果在具體操作中,我們對生成的圖像進行著色,利用三角函數(shù)模型可以使著色產(chǎn)生漸變效果。使用三色漸變函數(shù)模型可以直接濾除曲線小于0部分,突出紅、綠和藍三顏色,具體程序編寫如下:Math.cos(t*p/n) <0?r=0:r=255*Math.cos(t*p/n);Math.cos(t+c)*p/n) <0?g=0:g=255*Math.co

6、s(t+c)*p/n);Math.cos(t+2*c)*p/n) <0?b=0: b=255*Math.cos(t+2*c)*p/n);同時使用更細分一些的組合漸變,可以組合成紅、黃、綠、青、藍、紫色:Math.cos(t*p/n)+0.5<0?r=0:(Math.cos(t*p/n)+0.5>1?r=255:r=255*(0.5+Math.cos(t*p/n);Math.cos(t+c)*p/n)+0.5<0?g=0:(Math.cos(t+c)*p/n)+0.5>1?g=255:g=255*(0.5+Math.cos(t+c)*p/n);Math.cos(t+

7、2*c)*p/n)+0.5<0?b=0:(Math.cos(t+2*c)*p/n)+0.5>1?b=255:b=255*(0.5+Math.cos(t+2*c)*p/n);這里c=循環(huán)周期除以3。三色漸變著色曲線 組合漸變著色曲線 圖6漸變著色深度曲線有時動畫涉及層深變化,采用周期漸變著色能增加透視效果周期漸變效果見圖5有時曲線涉及交叉,為了使交叉處著色一致,需要uv方向漸變著色。u向漸變著色也可理解成環(huán)形漸變著色,v向漸變著色可以理解成軸向漸變著色。圖7 uv漸變著色效果 利用鼠標坐標設計以下程序,使程序生成的模型物體-魚跟隨鼠標移動。程序采用Flash的ActionScript

8、編寫。SWF(backgroundColor=0x00eeff,width=640,height=480)var sp:Sprite=addChild(new Sprite() as Sprite;sp.y=-200,sp.x=320;var px:Array=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,pp:Array=;var pz:Array=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,yur:Array=;var x0:Array=,;var z0:Array=,;var y0:Array=,;var r:Array=1,9,15

9、,19.5,22,23,23.5,23,22,19.5,16.5,13,10,9,10,12,14,16;var r1:Array=0,8,12,14.5,16,17,17.5,17,15.5,13,10,7.5,5,3,1,0.2,0,0;for (i=0; i<281; i+) ppi=new MovieClip();sp.addChild(ppi);var f:Number=1800,i:uint,m:int,t:int,k:int,h:int,j:int,c1:uint,c2:uint,c3:uint,r2:Number;var mc:Sprite=new Sprite();va

10、r box:Matrix=new Matrix();box.createGradientBox(20,10,1.57,240,0);mc.graphics.beginGradientFill("linear",0xddaaaa,0x882211,0xddaaaa,1,1,1,150,200,250,box,"reflect");mc.graphics.drawRect(280,0,120,400);for (i=0; i<36; i+) for (j=0; j<16; j+) c1=255<<16|Math.abs(j-7.5)*

11、20+20<<8|40;c2=255<<16|Math.abs(j-7.5)*20+60<<8|Math.abs(j-7.5)*20+30;c3=255<<16|Math.abs(j-7.5)*20<<8|0;r2=(5-Math.cos(i*Math.PI/40)/8;box.createGradientBox(56,40,0,270-i*9*r2,j*25-20+(i%2)*12.5);mc.graphics.beginGradientFill("radial",c3,c1,c2,1,1,1,70,120,20

12、0,box);mc.graphics.moveTo(275-i*9*r2,j*25+(i%2)*12.5);mc.graphics.lineTo(315-i*9*r2,j*25-14+(i%2)*12.5);mc.graphics.curveTo(315+(20-i*9)*r2,j*25+(i%2)*12.5,315-i*9*r2,14+j*25+i%2*12.5);mc.graphics.lineTo(275-i*9*r2,j*25+(i%2)*12.5);mc.graphics.endFill();for (i=0; i<2; i+) box.createGradientBox(20

13、0,400,0,-30,i*400-200);mc.graphics.beginGradientFill("radial",0xffddaa,0xff6633,0xff2200,1,1,1,50,150,205,box);mc.graphics.moveTo(0,i*200);mc.graphics.lineTo(60+i*10,i*200);mc.graphics.curveTo(125,110+i*180,70-i*10,200+i*200);mc.graphics.lineTo(0,200+i*200);mc.graphics.endFill();for (i=0;

14、i<2; i+) box.createGradientBox(20,40,0,45,i*200+80);mc.graphics.beginGradientFill("radial",0,0xbbbbbb,0x555555,1,1,1,50,100,255,box);mc.graphics.drawEllipse(45,80+i*200,20,40);mc.graphics.endFill();for (i=0; i<2; i+) mc.graphics.lineStyle(3,0xee6622,0.6);mc.graphics.moveTo(65+i*20,i*

15、250+50);mc.graphics.curveTo(85,60+i*280,85-i*20,100+i*250);var bmp1:BitmapData=new BitmapData(400,400);bmp1.draw(mc);addEventListener(Event.ENTER_FRAME,fff);function fff(e:Event) pz0+=(200*f/sp.mouseY-f-pz0)/15;/高度坐標轉換成深度坐標px0+=(sp.mouseX*(f+pz0)/f-px0)/15;yur0=Math.atan2(pz0-200*f/sp.mouseY+f,px0-s

16、p.mouseX*(f+pz0)/f);for (i=1; i<18; i+) i<=4?yuri=yur0:yuri=Math.atan2(pzi-pzi-1,pxi-pxi-1);pxi=pxi-1+10*Math.cos(yuri-1);pzi=pzi-1+10*Math.sin(yuri-1);for (i=0; i<18; i+) for (m=0; m<17; m+) z0im=pzi-r1i*Math.sin(m*Math.PI/8)*Math.cos(yuri);x0im=(pxi+r1i*Math.sin(m*Math.PI/8)*Math.sin(y

17、uri)*f/(f+z0im);y0im=(ri*Math.cos(m*Math.PI/8)+200)*f/(f+z0im);for (m=0; m<2; m+) z018m=z042+m*12+10*Math.sin(yur4-h*Math.PI/20*Math.pow(-1,m);x018m=x042+m*12+10*Math.cos(yur4-h*Math.PI/20*Math.pow(-1,m)*f/(f+z018m);y018m=217*f/(f+z018m);z018m+2=z043+m*10+5*Math.sin(yur4-h*Math.PI/20*Math.pow(-1,

18、m);x018m+2=x043+m*10+5*Math.cos(yur4-h*Math.PI/20*Math.pow(-1,m)*f/(f+z018m+2);y018m+2=207*f/(f+z018m+2);z018m+4=z081+m*14+10*Math.sin(yur8-(9-h)*Math.PI/20*Math.pow(-1,m);x018m+4=x081+m*14+10*Math.cos(yur8-(9-h)*Math.PI/20*Math.pow(-1,m)*f/(f+z018m+4);y018m+4=221*f/(f+z018m+4);z018m+6=z082+m*12+5*M

19、ath.sin(yur8-(9-h)*Math.PI/20*Math.pow(-1,m);x018m+6=x082+m*12+5*Math.cos(yur8-(9-h)*Math.PI/20*Math.pow(-1,m)*f/(f+z018m+6);y018m+6=214*f/(f+z018m+6);t=0;for (i=0; i<17; i+) /魚體for (m=0; m<16; m+) var vArr:Vector.<Number>=Vector.<Number>(x0im,y0im,x0im+1,y0im+1,x0i+1m+1,y0i+1m+1,x

20、0i+1m,y0i+1m);var uArr:Vector.<Number>=Vector.<Number>(i/17,m/16,i/17,(m+1)/16,(i+1)/17,(m+1)/16,(i+1)/17,m/16);ppt.Z=z0im+z0im+1+z0i+1m+1+z0i+1m;fce(t,vArr,uArr,"negative");t+;for (i=5; i<9; i+) /背鰭var y2:Number=(186+i-ri+1)*f/(f+z0i+17),y3:Number=(187+i-ri+2)*f/(f+z0i+27);

21、vArr=Vector.<Number>(x0i8,y0i8,x0i+18,y2,x0i+28,y3,x0i+18,y0i+18);uArr=Vector.<Number>(0.82,(i+4)/17,1,(i+4)/17,1,(i+6)/17,0.82,(i+6)/17);ppt.Z=z0i8+z0i+18+z0i+28+z0i+18;fce(t,vArr,uArr,"none");t+;for (i=0; i<2; i+) vArr=Vector.<Number>(x042+i%2*12,y042+i%2*12,x043+i%2

22、*10,y043+i%2*10,x018i+2,y018i+2,x018i,y018i);uArr=Vector.<Number>(0.82,0.02,0.82,0.2,1,0.2,0.85,0);ppt.Z=z043+i%2*10+z042+i%2*12+z018i+z018i+2;fce(t,vArr,uArr,"none");t+;for (i=4; i<6; i+) vArr=Vector.<Number>(x081+i%2*14,y081+i%2*14,x082+i%2*12,y082+i%2*12,x018i+2,y018i+2,x018i,y018i);uArr=Vector.<Number>(0.82,0.02,0.82,0.2,1,0.2,0.85,0);ppt.Z=z082+i%2*12+z081+i%2*14+z018i+z018i+2;fce(t,vArr,uArr,"none");t+;var x4:Number=x0110*0.4+x0120*0.6,y4:Number=y0110*0.4+y0120*0.6+15;var x1:Number=x0110*0.8+x0120*0.

溫馨提示

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

評論

0/150

提交評論