Javascript 向量简单应用

本人学习基本上参考了他们三位,在这里感谢他们的分享 当耐特专家 岑安 miloyip

向量

既有大小又有方向的量叫做向量(亦称矢量),与标量相对,用JS实现代码如下,直接搬miloyip的了

        Vector2 = function(x, y) { this.x = x; this.y = y; };

        Vector2.prototype = {
            copy: function() { return new Vector2(this.x, this.y); },
            length: function() { return Math.sqrt(this.x * this.x + this.y * this.y); },
            sqrLength: function() { return this.x * this.x + this.y * this.y; },
            normalize: function() { var inv = 1 / this.length(); return new Vector2(this.x * inv, this.y * inv); },
            negate: function() { return new Vector2(-this.x, -this.y); },
            add: function(v) { return new Vector2(this.x + v.x, this.y + v.y); },
            subtract: function(v) { return new Vector2(this.x - v.x, this.y - v.y); },
            multiply: function(f) { return new Vector2(this.x * f, this.y * f); },
            divide: function(f) { var invf = 1 / f; return new Vector2(this.x * invf, this.y * invf); },
            dot: function(v) { return this.x * v.x + this.y * v.y; }
        };

实现效果

  主要实现小方朝某个固定的方向移动,到达目的地后再分散开,重复上面两个步骤。

  为了实现物体朝某个点移动,这里需要进行一个向量的计算

targetPos.subtract(obj.pos).normalize();

   如一个点(100,100)移动到目标点(200,200),subtract()返回的就是一个向量,normalize()就是获取单位向量,因为向量是有方向的,所以点也就知道移动的方向了。

效果演示

转载于:https://www.cnblogs.com/xqhppt/archive/2012/03/31/2427611.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值