JavaScript数学揭密之函数与勾股定理

一、函数

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

二、勾股定理

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

   2、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>
时间: 2025-01-05 22:18:09

JavaScript数学揭密之函数与勾股定理的相关文章

JavaScript数学对象Math的创建与使用

Js中Math对象不用使用new创建,直接使用即可 常用的功能有,取绝对值,四舍五入,取整,随机数,取最大最小值 取绝对值:Math.abs(number) <script type="text/javascript"> // 绝对值 document.write("-100的绝对值为:" + Math.abs(-100) + '<br/>'); // 100 </script> 四舍五入,Math.round(number) &

Javascript读书笔记:函数定义和函数调用

定义函数 使用function关键字来定义函数,分为两种形式: 声明式函数定义: function add(m,n) { alert(m+n); } 这种方式等同于构造一个Function类的实例的方式: var add = new Function("m", "n", "alert(m+n);"); Function类构造方法的最后一个参数为函数体:"alert(m+n);",前面的都是函数的形参,参数必须是字符串形式的:&

JavaScript高级程序设计之函数

函数实际上是对象,每个函数都是Function类型的实例. 函数是引用类型. 函数名实际上是一个指向函数对象的指针,不会与某个函数绑定. // 这种写法更能表达函数的本质 var sum = function(num1, num2) { return num1 + num2; }; var anotherSum = sum; sum = null; console.log(anotherSum(10, 20)); // 30 console.log(sum(10, 20)); // typeer

JavaScript中的回调函数

在学习JavaScript的过程中遇到了很多,使用到回调函数的例子,出现了许多疑问,就由一个栗子开始吧: 在JavaScript中接触的第一个回调函数是在setInterval()和setTimeout()中出现的: 1 var num = 10; 2 3 var interValId = setInterval(function (){ 4 console.log(num); 5 num--; 6 if(num==0){ 7 clearInterval(interValId); 8 } 9 }

Javascript自执行匿名函数(function() { })()的原理分析

匿名函数指没有指定函数名或指针的函数,自执行匿名函数只是其中一种,下文中称这种函数为:自执行函数 下面是一个最常见的自执行函数: 1 // 传统匿名函数 2 (function() { 3 alert('hello'); 4 })(); 这段代码的执行效果就是在页面再载入时弹出:"hello" 是什么促使它自动执行的?,来看下面的代码 // 在传统写法上去掉小括号,并在前面加上运算符 ~,!,+,- ~function(){ alert('hello'); }(); !function

理解与使用Javascript中的回调函数 -2

在javascript中回调函数非常重要,它们几乎无处不在.像其他更加传统的编程语言都有回调函数概念,但是非常奇怪的是,完完整整谈论回调函数的在线教程比较少,倒是有一堆关于call()和apply()函数的,或者有一些简短的关于callback的使用示例. 函数也是对象 想弄明白回调函数,首先的清楚地明白函数的规则.在javascript中,函数是比较奇怪的,但它确确实实是对象.确切地说,函数是用 Function()构造函数创建的Function对象.Function对象包含一个字符串,字符串

javascript学习3-自定义函数

javascript自定义函数,很简单的小例子. 实现效果:输入两个数和运算符号,根据不同运算符对数据进行计算,返回值 代码: 1 <html> 2 <head> 3 <script type="text/javascript"> 4 var num1=window.prompt('请输入第一个num'); 5 var num2=window.prompt('请输入第二个num'); 6 var operator=window.prompt('请输入

javascript slice字符串切片函数

javascript中我们可以通过slice函数获取字符串的任意部分, slice函数需要传入两个参数 p1 和 p2. p1指定子字符串的开始位置,p2指定要截取字符串的长度. 注意:javascript中第一个字符的位置为0. 第一个范例我们希望截取主字符串的从0开始的10个字符,所以我们可以使用 slice(0,10) javascript中我们可以通过slice函数获取字符串的任意部分, slice函数需要传入两个参数 p1 和 p2. p1指定子字符串的开始位置,p2指定要截取字符串的

Javascript 中的回调函数和递归函数简单实际分析学习

Javascript 中的回调函数和递归函数简单实际分析学习 1 回调函数 所谓回调函数简单理解就是将一个函数做为参数传递给其他的函数供其使用.(只是在js中,因为其它的语言中有指针这个概念). 举一个简单的例子,当我们在统计账单的时候就要整理材料这些,然后就需要计算器,计算器我们想象成为一个可以实现计算的函数.统计账单是另外的另一个函数,当统计账单的时候就会需要计算器这个函数的支持,其实这就是一个简单的回调.可以按这个理解. 下来我借用网上的一个例子: //先定义一个函数fun1 functi