在上一篇《PHP算法練習(xí)九:將全部偶數(shù)轉(zhuǎn)到全部奇數(shù)之前》中給大家介紹怎么通過PHP將全部偶數(shù)轉(zhuǎn)到全部奇數(shù)之前,那么今天將繼續(xù)給大家?guī)鞵HP算法練習(xí)系列~
本文將給大家介紹怎么通過PHP計(jì)算圓的半徑和中心坐標(biāo)~
具體問題描述則是“如何編寫一個(gè) PHP 程序來計(jì)算由平面上三個(gè)給定點(diǎn)構(gòu)成的圓的半徑和中心坐標(biāo) (x, y)”?
該問題就相當(dāng)于一個(gè)數(shù)學(xué)題了,已知三點(diǎn),確定一個(gè)圓的半徑和中心坐標(biāo)。
看下圖:
給大家提供幾個(gè)公式:
設(shè)圓的公式如:
將圓方程化為標(biāo)準(zhǔn)方程:
將上述系數(shù)代入即可解得圓心(x,y)和半徑R:
PHP實(shí)現(xiàn)代碼如下:
<?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("圓的中心坐標(biāo)(x,y)和半徑:<br>"); printf("(%.3f %.3f) %.3fn", $x, $y, $r);
計(jì)算結(jié)果是:
圓的中心坐標(biāo)(x,y)和半徑: (1.000 1.000) 1.414
注:
sqrt()函數(shù)用于返回一個(gè)數(shù)的平方根。
語法是“sqrt(x)
”,表示返回x的平方根。
其中參數(shù)x表示一個(gè)數(shù)字,如果參數(shù) x 是負(fù)數(shù),則 sqrt() 函數(shù)返回 -1.#IND。(附:在 PHP 5.3.0 之前,該函數(shù)把數(shù)組當(dāng)做字符串 Array,這樣就返回一個(gè)長(zhǎng)度為 5 的字符串,并產(chǎn)生一個(gè) E_NOTICE 級(jí)別的錯(cuò)誤。)
最后給大家推薦最新最全面的《PHP視頻教程》~快來學(xué)習(xí)吧!