免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享

椭圆上一点P的运动轨迹

本文来自:★flash之路-flash技术交流★ 转帖请注明出处! 作者:网雨霏霏 您是第3585个浏览者

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
flashroad友情提示:
“点评”不是“回帖”!
问题出处:
http://tieba.baidu.com/p/6460656878


为防止帖子失效,现原搬原贴如下:
这个动画怎么做,不是逐侦动画,小球沿椭圆运动,并和椭圆两个焦点画线段!
只要椭圆,不需要坐标,不需要干预!就要一个小球沿引导层运动,连续,不是跳跃,并在小球与椭圆焦点之间实时画线!
[attach]1503[/attach]



=================
下面是做出来的成果【flash格式,需要浏览器安装有flash插件才可见】:
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.

获得 大福神卡 一张

卡片说明:网雨霏霏帮助迷路的小朋友找到家长,家长为表达谢意,付出了4威望

卡片效果:+4

友情提示:单击下列任意一个表情,即可瞬间自动回复本帖!

好贴......
郁闷......
开心......
擦汗......
鄙视......
狂怒
谢谢
爱你呦
拜托了
嗯嗯
OMG
求关注
伤心......
无奈.....
无奈.....
无奈.....
无奈.....
无奈.....
哈哈哈
NO
OK
what
我来了

最近访问本帖者列表:

flashroad
访问时间:2023-06-17 13:13
福兔迎祥
访问时间:2020-10-09 05:03
访问时间:2020-07-30 15:15
测试一下
访问时间:2020-02-05 11:39
武汉加油
访问时间:2020-02-05 11:20
舞林至尊
访问时间:2020-01-28 02:02
测试
访问时间:2020-01-27 22:52
网雨霏霏
访问时间:2020-01-27 22:24

打赏

取消

感谢您的支持,我会继续努力的!

扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by 爱秀代码,分享从这里开始,精彩与您同在

点评
B Color Smilies

您还可以输入:个字符
X

X

神马鬼......
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.
点评
B Color Smilies

您还可以输入:个字符
X

X

TOP

如果嫌太慢,就将第90行的代码修改为:
px +=  canshu*5;
数字越大,就越快。这里设置为5,就是5倍的播放速度

不过,实际测试的时候发现,这个数字不能随心所欲的任意修改,当它等于某些特定值的时候,动画会出问题
我测试出如下几个数值: 7、8、9、11、13、14

如果你修改了一些参数,这里的出问题的数字也会改变。需要你调试一下
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.
点评
B Color Smilies

您还可以输入:个字符
X

X

TOP

我用的是AS3源码:
  1. /*唯一可以手动修改的数据有:
  2. myx  在12行
  3. myy   在13行
  4. a    在16行
  5. b   在17行
  6. 注意:a的值必须大于b!
  7. */



  8. //椭圆左上角的坐标点【AS专用】
  9. var myx:Number = 140;
  10. var myy:Number = 80;

  11. //定义各种参数,字母是按照数学上的照搬的
  12. var a:Number = 150;//椭圆的宽度的一半
  13. var b:Number = 95;//椭圆的长度的一半
  14. //焦点与圆心之间的距离设为c,则c的大小满足特定的关系式:c方=a方-b方:
  15. var c:Number = Math.sqrt(Math.pow(a,2) - Math.pow(b,2));
  16. //trace(c);


  17. var f1x:Number;//椭圆的左焦点的x坐标
  18. var f2x:Number;//椭圆的右焦点的x坐标
  19. var f12y:Number;//椭圆的左、右焦点的y坐标




  20. //绘制椭圆:
  21. var ty:Shape=new Shape();//定义椭圆
  22. ty.graphics.lineStyle(0,0x000000);
  23. //c.graphics.beginFill(0x0000ff);
  24. ty.graphics.drawEllipse(myx,myy,2*a,2*b);
  25. ty.graphics.endFill();
  26. addChild(ty);//显示椭圆


  27. //找出椭圆的两个焦点↓↓↓
  28. f1x = myx + a - c;//左焦点x坐标
  29. f2x = myx + a + c;//右焦点x坐标
  30. f12y = myy + b;//左、右焦点y坐标
  31. //trace(f1x,f2x,f12y);


  32. //绘制这两个焦点
  33. var jd:Shape=new Shape();//定义焦点
  34. jd.graphics.lineStyle(0,0x000000);
  35. jd.graphics.drawCircle(f1x,f12y,1);
  36. jd.graphics.drawCircle(f2x,f12y,1);
  37. addChild(jd);



  38. //找出数学上的圆点O的坐标
  39. var ox:Number = myx + a;
  40. var oy:Number = myy + b;

  41. //设:椭圆的圆周上有一个动点P,现在根据其x坐标求得y坐标
  42. var px:Number = myx;//x坐标由enterframe控制,其最小值为myx
  43. var py:Number = myy;//y坐标最小值为myy  y坐标根据椭圆的方程求得: x方/a方+y方/b方=1
  44. /*
  45. px有 取值范围限定: myx≤px≤myx+2a
  46. py有 取值范围限定: myy≤py≤myy+2b
  47. */

  48. var leftline:Shape=new Shape();//描线的左边线的容器
  49. var rightline:Shape=new Shape();//描线的右边线的容器
  50. leftline.graphics.lineStyle(1,0x0000FF);
  51. rightline.graphics.lineStyle(1,0xFF0000);
  52. addChild(leftline);
  53. addChild(rightline);
  54. var canshu:Number = 1;//用于控制点P的走向,如果向右走,canshu为1,反之参数为-1


  55. //描线:
  56. this.addEventListener(Event.ENTER_FRAME,miaoxian);
  57. function miaoxian(evt:Event)
  58. {
  59.         leftline.graphics.clear();
  60.         rightline.graphics.clear();
  61.         if (px==myx)
  62.         {
  63.                 canshu=1;
  64.         }
  65.         else if (px==myx+2*a)
  66.         {
  67.                 canshu=-1;
  68.         }
  69.         px +=  canshu;
  70.         py=oy-canshu*b*Math.sqrt(1-Math.pow((px-ox)/a,2));
  71.         //接下来描线:

  72.         leftline=new Shape();
  73.         rightline=new Shape();
  74.         leftline.graphics.lineStyle(1,0x0000FF);
  75.         rightline.graphics.lineStyle(1,0xFF0000);
  76.         leftline.graphics.moveTo(f1x,f12y);
  77.         leftline.graphics.lineTo(px,py);
  78.         rightline.graphics.moveTo(px,py);
  79.         rightline.graphics.lineTo(f2x,f12y);
  80.         addChild(leftline);
  81.         addChild(rightline);
  82. }
复制
您所在的用户组只能看到部分内容.
如查看全部内容, 请先登录或者注册.
点评
B Color Smilies

您还可以输入:个字符
X

X

TOP

 

B Color Image Link Quote Code Smilies
高级模式 | 发新话题

您需要登录后才可以回帖 登录|立即注册

快速
返回顶部
返回首页