• 抛物线


    抛物线思路  
    第一步 : 确定三点坐标
    起点  
    var startPoint = {
        x : addCart.offsetLeft+addCart.offsetWidth/2,
        y : addCart.offsetTop
    }
    终点
    var endPoint = {
        x : shopCart.offsetLeft+shopCart.offsetWidth/2,
        y : shopCart.offsetTop
    }
    最高点
    var topPoint = {
        x : endPoint.x - 120,(数值随意设置)
        y : endPoint.y - 80  (数值随意设置)
    }
    第二步 : 根据三点坐标确定抛物线方程
    第三步 : 创建一个商品,并设置商品的起点位置
    创建商品
    var good = create("div");
    good.className = "good";
    document.body.appendChild(good);
    设置商品的位置 为起始点坐标
    good.style.left = startPoint.x + "px";
    good.style.top = startPoint.y + "px";
    第四步 : 商品运动
    第五步 : 根据条件停止商品运动 (商品删除  累加商品个数)
    沿着 抛物线的轨迹运动
    // y = a*x*x + b*x + c
    var x = startPoint.x;//小球运动起始的横坐标
    var timer = setInterval( function(){
    根据条件停止商品运动 (商品删除  累加商品个数)
        x += 5; left(x轴)
        y = a*x*x + b*x + c; top(y轴)
        if( x > endPoint.x ){
            clearInterval( timer );
            good.remove();
            shopNum.innerHTML = ++num;
        }else{
             good.style.left = x + "px";
             good.style.top = y + "px";
        }
    },20 )
     
    根据三点坐标确定抛物线的系数
    var a = ((startPoint.y - endPoint.y)*(startPoint.x - topPoint.x) - (startPoint.y -  topPoint.y) * (startPoint.x - endPoint.x)) / ((startPoint.x * startPoint.x - endPoint.x *  endPoint.x) * (startPoint.x -  topPoint.x)-(startPoint.x * startPoint.x -  topPoint.x * topPoint.x) * (startPoint.x -  endPoint.x));  
                        
    var b = ((endPoint.y - startPoint.y)  - a * (endPoint.x * endPoint.x - startPoint.x *  startPoint.x)) / (endPoint.x - startPoint.x);  
                        
    var c = startPoint.y - a *  startPoint.x * startPoint.x - b * startPoint.x;
  • 相关阅读:
    一文说透 Spring 循环依赖问题
    git修改已经push的commit message
    Connection Timeout 和CommandTimeout
    mvc 当中 [ValidateAntiForgeryToken] 的作用及用法
    mvc 当中 [ValidateAntiForgeryToken] 的作用及用法
    asp.net mvc与asp.net core Ajax删除操作delete中带ValidateAntiForgeryToken实例
    VS2017秘钥
    Sql server 2008 R2 配置管理工具服务显示远程过程调用失败:0x800706be
    SQL Server 2008找不到SQL Server配置管理器的问题
    如何为SQL Server2008添加登录账户并配置权限
  • 原文地址:https://www.cnblogs.com/tis100204/p/10302302.html
Copyright © 2020-2023  润新知