当前位置 博文首页 > 文章内容

    PHP算法练习十:计算圆的半径和中心坐标

    作者:shunshunshun18 栏目:未分类 时间:2021-08-16 10:42:46

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    在上一篇《》中给大家介绍怎么通过PHP将全部偶数转到全部奇数之前,那么今天将继续给大家带来PHP算法练习系列~

    本文将给大家介绍怎么通过PHP计算圆的半径和中心坐标~

    具体问题描述则是“如何编写一个 PHP 程序来计算由平面上三个给定点构成的圆的半径和中心坐标 (x, y)”?

    该问题就相当于一个数学题了,已知三点,确定一个圆的半径和中心坐标。

    看下图:

    f76a00d8c64d726ebd900fcd81294b5.png

    给大家提供几个公式:

    设圆的公式如:e749c6f0828a610c6592626a6ef21dc.png

    将圆方程化为标准方程:5d3da5f7969210dd7e8dc0ccec346a0.png

    将上述系数代入即可解得圆心(x,y)和半径R:

    025896b079506fc43f80e603f609ad7.png

    PHP实现代码如下:

    <?php
    $x1 = 0; $y1 = 0; $x2 = 2; $y2 = 0; $x3 = 2; $y3 = 2;
    $a1 = 2 * ($x2 - $x1);
    $b1 = 2 * ($y2 - $y1);
    $c1 = $x1 * $x1 - $x2 * $x2 + $y1 *$y1 - $y2 * $y2;
    $a2 = 2 * ($x3 - $x1);
    $b2 = 2 * ($y3 - $y1);
    $c2 = $x1 * $x1 - $x3 * $x3 + $y1 *$y1 - $y3 * $y3;
    $x = ($b1 * $c2 - $b2 * $c1) / ($a1 * $b2 - $a2 * $b1);
    $y = ($c1 * $a2 - $c2 * $a1) / ($a1 * $b2 - $a2 * $b1);
    $r = sqrt(($x - $x1) * ($x - $x1) + ($y - $y1) * ($y - $y1));
    printf("圆的中心坐标(x,y)和半径:<br>");
    printf("(%.3f %.3f) %.3f\n", $x, $y, $r);

    计算结果是:

    圆的中心坐标(x,y)和半径:
    (1.000 1.000) 1.414

    注:

    sqrt()函数用于返回一个数的平方根。

    语法是“sqrt(x)”,表示返回x的平方根。

    其中参数x表示一个数字,如果参数 x 是负数,则 sqrt() 函数返回 -1.#IND。(附:在 PHP 5.3.0 之前,该函数把数组当做字符串 Array,这样就返回一个长度为 5 的字符串,并产生一个 E_NOTICE 级别的错误。)

    最后给大家推荐最新最全面的《》~快来学习吧!