zoukankan      html  css  js  c++  java
  • JavaScript数学揭密之函数与勾股定理

    函数

    function show(n){
        return n*2;
    }
    alert( show(2) );  //4
    alert( show(3) );  //6
    alert( show(4) );  //8

    勾股定理

    可以实现两点坐标求距离的应用

    JS中的平方和开方

      Math.pow(2,3)   //2的立方
    
        Math.pow(3,2)   //3的平方
    
        Math.sqrt( 9 )   //3
    
        alert( Math.sqrt( Math.pow(3,2) + Math.pow(4,2) ) ); //这就是勾股定理

    使用勾股定理计算两点之间的距离,从而实现类似苹果菜单的案例

    原理是检测鼠标的位置,然后计算鼠标跟图片的距离,距离最近的图片最大,距离最远的图片最小

    <style>
    *{ margin:0; padding:0;}
    #div1{ width:100%; position:absolute; bottom:0; text-align:center;}
    img{ width:64px;}
    </style>
    <script>
        window.onload = function(){
            var aInput = document.getElementsByTagName('input');
            var oDiv = document.getElementById('div1');
            var aImg = oDiv.getElementsByTagName('img');
            
            
            document.onmousemove = function(ev){
                var ev = ev || window.event;
                
                for(var i=0;i<aImg.length;i++){
                
                     //图片距离页面左边边界的距离+每张图片的宽度的一半      这里不用加上div距离页面左边边界的距离,因为宽度是百分百的,距离就为零
                    var x = aImg[i].offsetLeft + aImg[i].offsetWidth/2;
                     //图片距离页面上边边界的距离+每张图片的宽度的一半+加上div距离页面上边边界的距离
                    var y = aImg[i].offsetTop + aImg[i].offsetHeight/2 + oDiv.offsetTop;
                    
                    var b = ev.clientX - x;//鼠标坐标的位置减去图片中心点坐标的位置       水平边的
                    var a = ev.clientY - y;//鼠标坐标的位置减去图片中心点坐标的位置       垂直边的
                    
                    var c = Math.sqrt(Math.pow(b,2) + Math.pow(a,2));//知道两条直角边   获取第三条边的长度,也就是勾股定理
                    
                     //使鼠标距离图片越近这个值就越大
                    var scale = 1 - c/300;  
                    
                    if(scale<0.5){
                        scale = 0.5;
                    }
                    
                    aInput[i].value = scale;
                    
                    aImg[i].style.width = scale * 128 + 'px';
                    aImg[i].style.height = scale * 128 + 'px';
                }
            };
        };
    </script>
    </head>
    <body>
        <input type="text">
        <input type="text">
        <input type="text">
        <input type="text">
        <input type="text">
        <div id="div1">
            <img src="img/1.png">
            <img src="img/2.png">
            <img src="img/3.png">
            <img src="img/4.png">
            <img src="img/5.png">
        </div>
    </body>
  • 相关阅读:
    JavaScript 中的构造函数
    sql链路服务器提示该事务管理器已经禁止了它对远程/网络事务的支持
    Operating System:操作系统启动总结
    Operating System:信号量
    Operating System:管程相关概念
    ACwing(基础)--- 线性DP、区间DP
    ACwing(基础)--- C++STL库
    ACwing(基础)--- 并查集、堆
    ACwing(基础)--- 数组模拟链表、栈、队列
    Vue 学习笔记2 data数据对象
  • 原文地址:https://www.cnblogs.com/LO-ME/p/4608503.html
Copyright © 2011-2022 走看看