Home >Backend Development >PHP Tutorial >Detailed introduction to PHP recursive algorithm_PHP tutorial

Detailed introduction to PHP recursive algorithm_PHP tutorial

WBOY
WBOYOriginal
2016-07-14 10:10:50790browse

PHP recursive algorithm code:


Copy the code as follows:
< ?php
//Define the value of the angle of one minute of PI define("PII",M_PI/180);
//Create a new image resource and define its background as white and the foreground color as black
$im=imagecreate(670,500);
$white=imagecolorallocate($im,0xFF,0xFF,0xFF);
$g=imagecolorallocate($im,0x00,0x00,0x00);
//From the instantiated code below, we can know that the initial values ​​$x, $y, $L, $a are divided into 300, 500, 100, 270
functiondrawLeaf($g,$x,$y,$L,$a)
{ global$im; $B=50; $C=9; $s1=2; $s2=3; $s3=1.2;
if($L>$s1){
//Calculate the positioning of leaves
$x2=$x+$L*cos($a*PII);
$y2=$y+$L*sin($a*PII);
$x2R=$x2+$L/$s2*cos(($a+$B)*PII);
$y2R=$y2+$L/$s2*sin(($a+$B)*PII);
$x2L=$x2+$L/$s2*cos(($a-$B)*PII);
$y2L=$y2+$L/$s2*sin(($a-$B)*PII);
//Calculate the positioning of the leaf below
$x1=$x+$L/$s2*cos($a*PII);
$y1=$y+$L/$s2*sin($a*PII);
$x1L=$x1+$L/$s2*cos(($a-$B)*PII);
$y1L=$y1+$L/$s2*sin(($a-$B)*PII);
$x1R=$x1+$L/$s2*cos(($a+$B)*PII);
$y1R=$y1+$L/$s2*sin(($a+$B)*PII);
//Draw the main stem and leaf surface of the leaf separately
ImageLine($im,(int)$x,(int)$y,(int)$x2,(int)$y2,$g);
ImageLine($im,(int)$x2,(int)$y2,(int)$x2R,(int)$y2R,$g);
ImageLine($im,(int)$x2,(int)$y2,(int)$x2L,(int)$y2L,$g);
ImageLine($im,(int)$x1,(int)$y1,(int)$x1L,(int)$y1L,$g);
ImageLine($im,(int)$x1,(int)$y1,(int)$x1R,(int)$y1R,$g);
//Call itself recursively again
drawLeaf($g,$x2,$y2,$L/$s3,$a+$C);
drawLeaf($g,$x2R,$y2R,$L/$s2,$a+$B);
drawLeaf($g,$x2L,$y2L,$L/$s2,$a-$B);
drawLeaf($g,$x1L,$y1L,$L/$s2,$a-$B);
drawLeaf($g,$x1R,$y1R,$L/$s2,$a+$B);
}
}
//Instantiation
drawLeaf($g,300,500,100,270);
header("Content-type:image/png");
imagepng($im);
?>

In my personal PHP programming experience, recursive calls are often used with static variables. The meaning of static variables can be found in the PHP manual. I hope the following code will be more helpful for understanding PHP recursive algorithms and static variables
Copy the code as follows:
header("Content-type:text/plain"); functionstatic_function()
{
static$i=0;
if($i++<10)
{
echo$i."n";
static_function();
}
}
static_function();

This PHP recursive algorithm code will output numbers from 1 to 10. When the static_function function runs for the second time, the variable i is still retained and not released because it is a static variable, and the auto-incremented value can be obtained.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/477447.htmlTechArticlePHP recursive algorithm code: Copy the code as follows: ?php //Define the value of the angle of one minute of PI define( PII,M_PI/180); //Create a new image resource and define its background as white and the foreground color as black...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn