具体问题描述则是“如何编写一个 PHP 程序来计算由平面上三个给定点构成的圆的半径和中心坐标 (x, y)”?
该问题就相当于一个数学题了,已知三点,确定一个圆的半径和中心坐标。
看下图:
给大家提供几个公式:
设圆的公式如:
将圆方程化为标准方程:
将上述系数代入即可解得圆心(x,y)和半径R:
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)和半径: "); 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 级别的错误。)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理