zoukankan      html  css  js  c++  java
  • 抛物线

    抛物线思路  
    第一步 : 确定三点坐标
    起点  
    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;
  • 相关阅读:
    Printing a DataGridView on DotNet Framework
    对比.NET PetShop和Duwamish来探讨Ado.NET的数据库编程模式
    PetShop配置readme
    关于DGVPrinter.cs中的PrintRange
    foobar2000 0.9.5正式版放出
    Another DataGridView Printer
    getline及读文件总结
    C++中文件的读取操作,如何读取多行数据,如何一个一个的读取数据
    vector的clear和swap
    写程序前不需指定数组中的常量,而是动态编译中决定
  • 原文地址:https://www.cnblogs.com/tis100204/p/10302302.html
Copyright © 2011-2022 走看看