zoukankan      html  css  js  c++  java
  • JavaScript实现定点圆周运动

    目是这样的:假设有一定点(400px,300px),通过JavaScript使一个直径20px的圆点以 r=180px 为半径围绕该点做匀速圆周运动。

    这个问题的整体实现思想应该是这样的,看到“半径”,“圆周运动”这些字眼首先应该想到的是数学方法,想到sin,cos这些三角函数。有了定点坐标和半径 r,我们可以初始化一个角度 a,通过 400-cos(a)*r 和 300-sin(a)*r 来分别获取圆点相对于定点在角度为 a 时刻的横纵坐标,至于匀速的问题,可以通过 setInterval()方法来处理。 

    <!DOCTYPE html>
    <meta charset="utf-8"/>
    <style>
    body {
        margin: 0;
        background: #2b5996;
    }
    #earth {
        width: 20px;
        height: 20px;
        border-radius: 10px;
        position: absolute;
        background: url(images/earth.jpg);
    }
    
    #sun{
        position: absolute;
        top: 275px;
        left: 375px;
    }
    </style>
    <div id="earth"></div>
    <div id="sun"><img src="images/sun.jpg"></div>
    <script>
    var r = 180;
    var b = document.getElementById("earth");
    var t = 0;
    var xy = {top: 0, left: 0};
    setInterval(function(){
        xy.top = 300 - Math.sin(t)* r;
        xy.left = 400 - Math.cos(t)* r;
        b.setAttribute("style", 'top: ' + xy.top + 'px; left: ' + xy.left + 'px');
        t += 0.01;
    },20);
    </script>

    示例:http://shaozhuang.me/demo/yuanzhou.html

  • 相关阅读:
    java 数字加密
    java 计算旅途时间
    java练习题3
    java练习题
    java练习
    java练习题
    删除记录模块的设计与实现
    修改记录模块的设计与实现
    提交页面
    采用PreparedStatement的对象实现记录的查询操作
  • 原文地址:https://www.cnblogs.com/youxin/p/3364503.html
Copyright © 2011-2022 走看看