极坐标的应用
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-12
那天谁说的要画8字的图案。可以应用极坐标来完成。 大家对高中时的圆锥曲线统一极坐标方程还熟悉吧? len = e*p/ (1- e*cos(rad)) e离心率,p焦点到准线距离 //下面是一个椭圆。 function ellipse(r) { _root.funcName.text = "椭圆"; return .3*175/(1-.9*Math.cos(r)); } 极坐标的点是用 (length, radian)表示的,但是Flash是笛卡尔坐标,所以用下面的函数来转化。 //极坐标转化成笛卡尔坐标 function pToC() { var point = new Object(); //用笛卡尔表示的点 var len; len = doCalculate.call(this, r); //得到极坐标的点 point.x = len*Math.cos(r); point.y = len*Math.sin(r); return point; } 然后根据得到的笛卡尔坐标的点,利用onEnterFrame画图就可以了。 点击浏览该文件 点击浏览该文件 附上几个极坐标的方程: 过原点的直线:red = a ; a 是常数的一个角 垂直极轴的直线:len*cos(rad) = constLen; constLen 是常数的一个长度 平行极轴的直线:len*sin(rad) = constLen; 圆心是原点的圆:len = R; R是半径 过原点的圆,圆心在极轴:len = 2* R * cos(rad); 过原点的圆,圆心在垂直极轴的直线上:len = a*R*sin(rad); 心脏线:len = 2*R*(1+cos(rad)); R是心脏线的中心到原点的距离 纽线:pow(len,2) = pow(A,2)*cos(2*rad); A是半长轴 pow(len,2) = pow(A,2)*sin(2*rad); 四瓣玫瑰线: len = A * cos(2*rad); 三瓣玫瑰线: len = A * cos(3*rad); 注:偶数倍rad画倍数的2倍个瓣,奇数倍画奇数个瓣 螺旋线:len = A * rad; 对数螺旋线:len = pow(e,A*rad); 这个A要舍得小一点才能看清楚 改变一下方程,能画出很漂亮的曲线 关于源文件,我其实不是想说AS,倒是想起了C。因为AS里边function特别有一个Function类,大家应该也用的很熟了。 可是C的初心者一般都对指向函数的指针敬而远之,其实用是一样,名字不同,但我都叫“函数对象”。用来实现所谓静态多态(不绑定对象的“多态”)。 例子就是把 函数对象 作为 调用函数 的一个参数,从而使调用函数表现为“多态”。 function invoker(func, [parameters]){ //do some common init work func.call(this, [parameters]); //do something } C版本: void invoker(TYPE (*func),[parameters]){ func([parameters]); } 因为AS其实还是一种弱类型语言,几乎可以任意的转换类型,这种调用就显得特别灵活。AS的函数还自动产生一个arguements对象,完全可以不在定义函数的时候写死,而在调用的时候选择不同的参数形式。 比如Array的构造函数就可以接收多种完全不同形式的参数 甚至可以写成这样: function afunc(){ var len = arguments.length; //...................... var local1 = arguments[0]; if(arguments[1]) //................ arguments[2].call(arguments[3],arguments[4],....); } 总之,引用《thinking in Java》的一句话,万物皆对象。利用好对象的特点。 声明,这个帖子是我写的,可是内容不是“原创”,都写进n百本教材了,温习一下。 关键词:坐标 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 仿CCTV导航栏效果下一篇: Flash MX 2004 video
关于极坐标的应用的所有评论