ホームページ  >  記事  >  バックエンド開発  >  PHP 再帰アルゴリズムの詳細な紹介_PHP チュートリアル

PHP 再帰アルゴリズムの詳細な紹介_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-14 10:10:50740ブラウズ

PHP 再帰アルゴリズム コード:


次のようにコードをコピーします:
< ?php
//PIの1分間の角度の値を定義するdefine("PII",M_PI/180);
// 新しい画像リソースを作成し、その背景を白、前景色を黒として定義します
$im=imagecreate(670,500);
$white=imagecolorallocate($im,0xFF,0xFF,0xFF);
$g=imagecolorallocate($im,0x00,0x00,0x00);
//以下のインスタンス化されたコードから、初期値$x、$y、$L、$aがそれぞれ300、500、100、270
に分割されていることがわかります functiondrawLeaf($g,$x,$y,$L,$a)
{ $B=50; $s1=2;
if($L>$s1){
//葉の位置を計算します
$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);
//下の葉の位置を計算します
$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);
//葉の主茎と葉面を分けて描画します
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);
//自分自身を再帰的に呼び出します
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);
}
}
//インスタンス化
drawLeaf($g,300,500,100,270);
header("コンテンツタイプ:画像/png");
imagepng($im);
?>

私の個人的な PHP プログラミングの経験では、再帰呼び出しは静的変数でよく使用されます。静的変数の意味については、PHP マニュアルを参照してください。次のコードが PHP の再帰アルゴリズムと静的変数を理解するのにさらに役立つことを願っています
次のようにコードをコピーします:
header("コンテンツタイプ:text/plain"); functionstatic_function()
{
static$i=0;
if($i++ {
echo$i."n";
static_function();
}
}
static_function();

この PHP 再帰アルゴリズム コードは 1 から 10 までの数値を出力します。 static_function 関数を 2 回目に実行すると、変数 i は静的変数であるため解放されずに保持され、自動インクリメントされた値が取得されます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/477447.html技術記事 PHP 再帰アルゴリズム コード: 次のようにコードをコピーします。 ?php //PI の 1 分の角度の値を定義します。define(PII,M_PI/180) //新しい画像リソースを作成し、その背景を白として定義します。前景色を黒として..
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。