三角函数模型的简单应用_第1页
三角函数模型的简单应用_第2页
三角函数模型的简单应用_第3页
三角函数模型的简单应用_第4页
三角函数模型的简单应用_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、三角函数模型的简单应用2014-2015南春中学 103班组长:李烁瀚 组员:周约翰 冯文二 蔡岱翰指导老师:李锦纯课题研究的开展课题研究:探究三角函数模型在电脑绘图中的应用。研究目的:开阔视野,增长见识,提高我们的数学素养,使我们能更好地学习和应用数学。研究过程:1.准备阶段:从各种渠道收集相关资料2.实施阶段: 确定研究内容 从互联网和图书馆查阅相关资料 小组内交流讨论成果 编写相关程序3.总结阶段:由组长整理和汇总相关资料和成果并写成报告。研究成果:三角函数学的发展,由起源迄今差不多经历了三四千年之久,在古代,由于古代天文学的需要,为了计算某些天体的运行行程问题,需要解一些球面三角形,在

2、解球面三角形时,往往把解球面三角形的问题归结成解平面三角形,这些问题的积累便形成了所谓古代球面三角学古代平面三角学;虽然古代球面三角学的发展早于古代平面三角学,但古代平面三角学却是古代球面三角学的发展基础。三角函数在数学中属于初等函数里的超越函数的一类函数。它们本质上是任意角的集合与一个比值的集合的变量之间的映射。由于三角函数具有周期性,所以并不具有单射函数意义上的反函数。三角函数在复数中有重要的应用,在物理学中也是常用的工具。由于三角函数的周期性,它并不具有单值函数意义上的反函数。 在实际生活中,有许多周期现象可以用三角函数来模拟,如物理中简谐振动、交流电中的电流、潮汐等,都可以建立三角函数

3、的模型利用三角函数的性质解决有关问题;很多最值问题都可以转化为三角函数来解决,如天气预报、建筑设计、航海、测量、国防中都能找到神奇的三角函数的影子。因而三角函数解决实际问题应用极广、渗透能力很强。 在电脑程序的开发中,通常需要图像的绘制。通常情况下,可以在开发环境下使用直线、形状等图形控件直接绘图。具有占用系统资源少、运行速度快、代码简洁、可以在开发界面直接浏览完成图像等特点。然而,控件绘图法无法进行动态绘图,但利用三角函数创作曲线、着色、模型、动画可以产生不错的效果。 下面举一实例:简单曲线画法最简单曲线当属圆形用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不能为偶数,n=m+1,或n=m-1。则图形为: 图1 例子中,更改m、n变量产生的结果完成一个图形后,对这个函数图像进行修饰,对函数图像进

5、行修饰的过程中,应用加修饰、乘修饰和嵌入修饰。通过利用正弦余弦的嵌入方式只改变b2,在曲线的交汇点处产生偏移,防止重合,产生藤编效果。 图2 通过加修饰生成的曲线 图3通过乘修饰生成的曲线图4 利用嵌入修饰生成的花篮图5藤编效果曲线着色使用周期渐变效果在具体操作中,我们对生成的图像进行着色,利用三角函数模型可以使着色产生渐变效果。使用三色渐变函数模型可以直接滤除曲线小于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=循环周期除以3。三色渐变着色曲线 组合渐变着色曲线 图6渐变着色深度曲线有时动画涉及层深变化,采用周期渐变着色能增加透视效果周期渐变效果见图5有时曲线涉及交叉,为了使交叉处着色一致,需要uv方向渐变着色。u向渐变着色也可理解成环形渐变着色,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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论