在上一篇《PHP算法练习九:将全部偶数转到全部奇数之前》中给大家介绍怎么通过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 级别的错误。)

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

以上就是PHP算法练习十:计算圆的半径和中心坐标的详细内容,更多请关注亿码酷站其它相关文章!


PHP算法练习十:计算圆的半径和中心坐标
—–文章转载自PHP中文网如有侵权请联系ymkuzhan@126.com删除

下载声明:
  • 本站资源如无特殊说明默认解压密码为www.ymkuzhan.com建议使用WinRAR解压;
  • 本站资源来源于用户分享、互换、购买以及网络收集等渠道,本站不提供任何技术服务及有偿服务,资源仅提供给大家学习研究请勿作它用。
  • 赞助本站仅为维持服务器日常运行并非购买程序及源码费用因此不提供任何技术支持,如果你喜欢该程序,请购买正版!
  • 版权声明:
  • 下载本站资源学习研究的默认同意本站【版权声明】若本站提供的资源侵犯到你的权益,请提交版权证明文件至邮箱ymkuzhan#126.com(将#替换为@)站长将会在三个工作日内为您删除。
  • 免责声明:
  • 您好,本站所有资源(包括但不限于:源码、素材、工具、字体、图像、模板等)均为用户分享、互换、购买以及网络收集而来,并未取得原始权利人授权,因此禁止一切商用行为,仅可用于个人研究学习使用。请务必于下载后24小时内彻底删除,一切因下载人使用所引起的法律相关责任,包括但不限于:侵权,索赔,法律责任,刑事责任等相关责任,全部由下载人/使用人,全部承担。以上说明,一经发布视为您已全部阅读,理解、同意以上内容,如对以上内容持有异议,请勿下载,谢谢配合!支持正版,人人有责,如不慎对您的合法权益构成侵犯,请联系我们对相应内容进行删除,谢谢!