zoukankan      html  css  js  c++  java
  • ActionScript学习笔记(三)——三角学应用(旋转、波形,圆椭圆、勾股定理)

    一门语言的数据类型,流程控制,函数,面向对象,核心API这些都是次要的,因为接触一门语言这些都要接触到,但是前面三者大同小异的,所以就算法而言才是正儿八经的王道,所以这次就好好总结一下一些动画的算法。先从三角学应用开始。

    三角函数不用提了,对于高中复习两年的我现在都还记得很清楚的,你让我重新推导一遍都没什么大问题。原来总结了一部分但是由于代码原来那个博客发上来太麻烦了。并且还有很多好玩的没有总结完呢,尤其是那个椭圆运动仿照万有引力的那种。既然是动画总得在帧事件当中吧,不多提咯。

    0、角度弧度转化

    弧度(radians) = 角度(degrees) * Math.PI / 180;

    角度(degrees) = 弧度(radians) * 180 / Math.PI;

    1、旋转

    例子:围着鼠标旋转

    var dx:Number = mouseX - sprite.x;
    var dy:Number = mouseY - sprite.y;
    var radians:Number = Math.atan2(dy,dx);
    sprite.rotation = radians * 180 / Math.PI;

    2、平滑的上下运动(也就是正弦或余弦运动)

    sprite.y = Math.sin(angle)*50;
    angle += speed;

    3、心跳运动(忽大忽小)

    sprite.scaleX = sprite.scaleY = Math.sin(angle) * range;
    angle += speed;

    4、双角波形(没有规律的乱飞)

    sprite.y = Math.sin(angle)*50;
    sprite.x = Math.sin(angle)*50;

    5、绘制波形

    sprite.x += xSpeed
    sprite.y = Math.sin(angle)*50;
    angle += speed;

    6、圆

    sprite.x = centerX + Math.cos(angle)*radius;
    sprite.y = centerY + Math.sin(angle)*radius;
    angle += speed;

    7、椭圆

    //和圆差不多,俩半径即可
    sprite.x = centerX + Math.cos(angle)*radiusX;
    sprite.y = centerY + Math.sin(angle)*radiusY;
    angle += speed;

    8、勾股定理(两点间距离)

    var dx:Number = sprite_1.x - sprite_2.x;
    var dy:Number = sprite_1.y - sprite_2.y;
    var distance:Number = Math.sqrt(dx*dx + dy*dy);
  • 相关阅读:
    JPA各种类型映射处理
    HTML URL编码
    C# 温故而知新:Stream篇(二)
    数据集
    C#可调用API接口来获取窗口句柄,代码如下:
    C# 温故而知新:Stream篇(三)
    SQL的主键和外键约束
    C# 温故而知新: 线程篇(三)
    C# 温故而知新:Stream篇(四)
    C# 温故而知新:Stream篇(—)
  • 原文地址:https://www.cnblogs.com/flashbird/p/3343824.html
Copyright © 2011-2022 走看看