用割圆法求圆的面积

用割圆法求圆的面积

思路如下:就是将一个圆看作是由无数个矩形组成的不规则图形,通过这种思路则可以将圆的面积近似为这些矩形的面积相加,因为每一个分割都只是逼近圆的面积而不是等于圆,但是是要分割的越小则面积越接近,所以分割的份数越多则面积越接近真实面积;

在这里插入图片描述

代码实现如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        html,
        body {
            width: 100%;
            height: 100%;
        }

        form {
            margin: 100px auto;
            width: 300px;
            height: 300px;
            display: block;
            display: flex;
            flex-direction: column;
            justify-content: space-evenly;
            align-items: center;
            line-height: 40px;
            position: relative;
        }

        span {
            display: block;
            height: 30px;
            width: 120px;
            float: left;
        }
        input {

            height: 30px;
            width: 150px;

        }
        div {
            width: 300px;
            height: 40px;
            display: flex;
        }
        button{
           position: absolute;
           left: 0px;
           top: 300px;
           width: 60px;
        }
    </style>
</head>

<body>
    <form action="##">
        <div>圆的半径:<input type="text"></div>
        <div> 圆的精度:<input type="text"></div>
        <div>得到结果:<textarea name="" id="" cols="20" rows="10" style="height: 100px;"></textarea></div>
        <button>输出</button>
    </form>
</body>
<script type="text/javascript">
    function Round(radius, acc) {
        this.radius = radius;  //圆的半径
        this.acc = acc;        //圆的精度,即for循环次数
    }
    Round.prototype.area = function () {
        let area = 0;   //分割的每一份长方形的面积和
        let acc = this.acc;  //循环次数
        let radius = this.radius;  //圆的半径
        let width = radius / acc;   //切割的每一份的宽度
        for (var i = 1; i <= acc; i++) {   //循环
            //通过勾股定理求分割的每一份的长方形的高度
            let height = Math.sqrt(Math.pow(radius, 2) - Math.pow((radius - width * i), 2));
            area += height * width; //将每个长方形的面积相加,得到四分之一圆的面积
        }
        area = area * 4; //圆的总面积
        let pi = area / Math.pow(radius, 2);  //由圆的面积公式求pi值
        return `面积是${area},pi值是${pi}`;   //返回字符串输出
    }
   //在网页输出
   var r = Number(document.querySelectorAll('div>input')[0].value);
   var a = Number(document.querySelectorAll('div>input')[1].value);
    document.querySelectorAll('div>input')[0].onblur = function () {
        r = Number(document.querySelectorAll('div>input')[0].value);       
        }
        document.querySelectorAll('div>input')[1].onblur = function () {
            a = Number(document.querySelectorAll('div>input')[1].value);
        }
    document.querySelector('button').onclick = function () {
        let round = new Round(r, a);
        let area = round.area(); //调用函数
        document.querySelector('textarea').value = area;
    }
</script>
</html>

实现如图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值