仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1466|回复: 18
打印 上一主题 下一主题

[学习教程] PHP网站制作之十分精巧的 PHP 递归挪用 代码

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:39:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
可以说你的马步已经扎的差不多了,接下来就要开始练把势的时候了,如果有条件的话,用笔或者打印一个简易的PHP手册在身上,时不时的摸出来看看,记得,去WC也不能放过(^2^)。   

<?php
// 界说 PI 一分的角度的值
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
function drawLeaf($g, $x, $y, $L, $a) {
     global $im;
     $B = 50;
     $C = 9;
     $s1 = 2;
     $s2 = 3 ;
     $s3 = 1.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("Content-type: image/png");
imagepng($im);
?>


在我团体的 PHP 编程经历中,递归挪用经常与静态变量利用。静态变量的寄义可以参考 PHP 手册。但愿上面的代码,会更有益于对递归和静态变量的了解

header("Content-type: text/plain");
function static_function () {
     static $i = 0;
     if ($i++ < 10) {
         echo $i . "\n";
         static_function();
     }
}
static_function();这段代码会如数输入 1 到 10 的数字。在 static_function 函数第二次运转时,变量 i 因为是静态变量,所以仍被保存不被释放,进而可以失掉自增的值。
<P style="TEXT-INDENT: 2em">
我想在讲述自己的学习方式前,对那些期望能从我的文章中获得有用信息的人说一句心里话:
小女巫 该用户已被删除
沙发
发表于 2015-2-4 05:01:19 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-2-5 00:49:02 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
透明 该用户已被删除
地板
发表于 2015-2-5 04:21:08 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
简单生活 该用户已被删除
5#
发表于 2015-2-6 16:44:24 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
再见西城 该用户已被删除
6#
发表于 2015-2-6 17:09:20 | 只看该作者
当然这种网站的会员费就几十块钱。
乐观 该用户已被删除
7#
发表于 2015-3-2 21:10:16 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
活着的死人 该用户已被删除
8#
发表于 2015-3-13 08:08:40 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
谁可相欹 该用户已被删除
9#
发表于 2015-3-17 05:06:48 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
10#
发表于 2015-3-23 02:40:21 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
若天明 该用户已被删除
11#
发表于 2015-4-9 03:24:16 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
冷月葬花魂 该用户已被删除
12#
发表于 2015-4-15 11:06:07 | 只看该作者
爱上php,他也会爱上你。
分手快乐 该用户已被删除
13#
发表于 2015-4-16 03:03:48 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
灵魂腐蚀 该用户已被删除
14#
发表于 2015-4-16 15:11:40 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
因胸联盟 该用户已被删除
15#
发表于 2015-4-26 03:08:04 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
不帅 该用户已被删除
16#
发表于 2015-4-27 15:43:57 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
变相怪杰 该用户已被删除
17#
发表于 2015-5-4 11:57:15 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
飘飘悠悠 该用户已被删除
18#
发表于 2015-5-5 04:19:39 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
小魔女 该用户已被删除
19#
发表于 2015-6-21 23:47:02 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-18 07:07

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表