纯PHP生成的一个树叶图片画图例子


Posted in PHP onApril 16, 2014

效果:

 

提示:保存到PHP文件然后在浏览器中打后即可看到和效果图一样的一张图片。

<?php
$im=imagecreate(670,500); 
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF); 
$g = imagecolorallocate($im, 0x00, 0x00, 0x00); 
define("PII",M_PI/180); 
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安全配置
Oct 09 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
Jul 04 PHP
php对大文件进行读取操作的实现代码
Jan 23 PHP
PHP mysql与mysqli事务使用说明 分享
Aug 17 PHP
php猜单词游戏
Sep 29 PHP
PHP中的switch语句的用法实例详解
Oct 21 PHP
php三种实现多线程类似的方法
Oct 30 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
PHP检测链接是否存在的代码实例分享
May 06 PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 PHP
php根据命令行参数生成配置文件详解
Mar 15 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 PHP
通过dbi使用perl连接mysql数据库的方法
Apr 16 #PHP
php sybase_fetch_array使用方法
Apr 15 #PHP
强制PHP命令行脚本单进程运行的方法
Apr 15 #PHP
用PHP和Shell写Hadoop的MapReduce程序
Apr 15 #PHP
php获取mysql字段名称和其它信息的例子
Apr 14 #PHP
PHP检测移动设备类mobile detection使用实例
Apr 14 #PHP
PHP删除数组中空值的方法介绍
Apr 14 #PHP
You might like
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
javascript Array对象基础知识小结
2010/11/16 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
PHP守护进程实例
2015/03/06 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
Angular 页面跳转时传参问题
2016/08/01 Javascript
很棒的js Tab选项卡切换效果
2016/08/30 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
BootstrapTable加载按钮功能实例代码详解
2017/09/22 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
通过Pandas读取大文件的实例
2018/06/07 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
Python函数装饰器实现方法详解
2018/12/22 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
2013/01/09 HTML / CSS
美国高端寝具品牌:Coyuchi
2017/02/08 全球购物
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
个人典型事迹材料
2014/12/30 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android
Django框架之路由用法
2022/06/10 Python