A detailed example analysis of the PHP recursive algorithm _php tutorial

Source: Internet
Author: User
Tags cos php language sin
When we build a website, programmers prefer the PHP language. We are still familiar with PHP, and then we will introduce you to the PHP recursive algorithm. PHP, a nested abbreviated name, is an abbreviation for the English Super Text preprocessing language (Php:hypertext preprocessor).

PHP is an HTML embedded language, is a server-side implementation of embedded HTML document scripting language, language style has similar to the C language, is now widely used by many web site programmers. PHP's unique syntax mixes C, Java, Perl, and PHP's self-innovative syntax.
It can perform dynamic Web pages more quickly than CGI or Perl. Dynamic pages made with PHP are compared to other programming languages, and PHP is executed in an HTML document, which is much more efficient than CGI, which is also embedded in the HTML document, and PHP is executed on the server side, compared to the scripting language JavaScript Take full advantage of the performance of the server, the PHP execution engine will also be the user frequently access to the PHP program in memory, other users do not need to recompile the program once again to access the program, as long as the direct execution of in-memory code, which is the embodiment of PHP efficiency.

PHP has a very powerful feature, all CGI or JavaScript functionality PHP can be implemented, and support almost all the popular database and operating system. We introduce the PHP recursive algorithm in detail here.

PHP Recursive algorithm code:
Copy CodeThe code is as follows:
< PHP
Defines the value of the angle of the PI point define ("PII", m_pi/180);
Creates a new image resource and defines its background as white with a foreground color of black
$im =imagecreate (670,500);
$white =imagecolorallocate ($im, 0xff,0xff,0xff);
$g =imagecolorallocate ($im, 0x00,0x00,0x00);
From the code instantiated below you can tell that the initial value $x, $y, $L, $a not divided into 300,500,100,270
Functiondrawleaf ($g, $x, $y, $L, $a)
{global$im; $B =50; $C =9; $s 1=2; $s 2=3; $s 3=1.2;
if ($L > $s 1) {
Calculate the positioning of the leaves above
$x 2= $x + $L *cos ($a *pii);
$y 2= $y + $L *sin ($a *pii);
$x 2r= $x $L/$s 2*cos (($a + $B) *pii);
$y 2r= $y $L/$s 2*sin (($a + $B) *pii);
$x 2l= $x $L/$s 2*cos (($a-$B) *pii);
$y 2l= $y $L/$s 2*sin (($a-$B) *pii);
Calculate the position of the leaves below
$x 1= $x + $L/$s 2*cos ($a *pii);
$y 1= $y + $L/$s 2*sin ($a *pii);
$x 1l= $x 1+ $L/$s 2*cos (($a-$B) *pii);
$y 1l= $y 1+ $L/$s 2*sin (($a-$B) *pii);
$x 1r= $x 1+ $L/$s 2*cos (($a + $B) *pii);
$y 1r= $y 1+ $L/$s 2*sin (($a + $B) *pii);
Do not draw the leaves of the trunk and foliage
Imageline ($im, (int) $x, (int) $y, (int) $x 2, (int) $y 2, $g);
Imageline ($im, (int) $x 2, (int) $y 2, (int) $x 2R, (int) $y 2R, $g);
Imageline ($im, (int) $x 2, (int) $y 2, (int) $x 2L, (int) $y 2L, $g);
Imageline ($im, (int) $x 1, (int) $y 1, (int) $x 1L, (int) $y 1L, $g);
Imageline ($im, (int) $x 1, (int) $y 1, (int) $x 1R, (int) $y 1R, $g);
Recursively calls itself again
Drawleaf ($g, $x 2, $y 2, $L/$s 3, $a + $C);
Drawleaf ($g, $x 2R, $y 2R, $L/$s 2, $a + $B);
Drawleaf ($g, $x 2L, $y 2L, $L/$s 2, $a-$B);
Drawleaf ($g, $x 1L, $y 1L, $L/$s 2, $a-$B);
Drawleaf ($g, $x 1R, $y 1R, $L/$s 2, $a + $B);
}
}
Instantiation of
Drawleaf ($g, 300,500,100,270);
Header ("Content-type:image/png");
Imagepng ($im);
?>

In my personal experience with PHP programming, recursive calls are often used with static variables. The meaning of static variables can be referenced in the PHP manual. Hopefully, the following code will be more useful for understanding the PHP recursive algorithm and static variables.
Copy CodeThe code is 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 a number from 1 to 10. When the Static_function function is run for the second time, the variable i is still not released because it is a static variable, and thus the self-increment value can be obtained.

http://www.bkjia.com/PHPjc/326597.html www.bkjia.com true http://www.bkjia.com/PHPjc/326597.html techarticle When we build a website, programmers prefer the PHP language. We are still familiar with PHP, and then we will introduce you to the PHP recursive algorithm. PHP, a ...

  • Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.