PHP学习笔记(4)GD库画五角星


<?php
//加header头,不然浏览器乱码
header("content-type: image/png");
//创建画布资源
$img = imagecreatetruecolor(500, 500);
//创建颜色
$green = imagecolorallocate($img, 0, 255, 0);
//画椭圆
// imagefilledellipse($img, 200, 200, 100, 100, $green);
$r = 100;//半径
$degree36 = deg2rad(36);//直角三角形18度,改成弧度
$l = 2*$r*sin($degree36);
$a = $l*cos($degree36);//长边1长度
$b = $l*sin($degree36);//短边1长度
$c = $l/2;//短边2长度
$d = $r*cos($degree36);//长边2长度
//五个顶点坐标
$px1 = 200;
$py1 = 200;
$px2 = $px1+$a;
$py2 = $py1+$b;
$px3 = $px1+$c;
$py3 = $py1+$r+$d;
$px4 = $px1-$c;
$py4 = $py1+$r+$d;
$px5 = $px1-$a;
$py5 = $py1+$b;
//画多边形,points是顶点坐标数组,num_points是顶点个数,妈蛋这个画不出来五角星,只能拼出来。还不如用直线画
$points = array($px1,$py1,$px2,$py2,$px3,$py3,$px4,$py4,$px5,$py5);
// imagepolygon($img, $points, 5, $green);
//画五条线
imageline($img, $px1, $py1, $px3, $py3, $green);
imageline($img, $px1, $py1, $px4, $py4, $green);
imageline($img, $px2, $py2, $px4, $py4, $green);
imageline($img, $px2, $py2, $px5, $py5, $green);
imageline($img, $px3, $py3, $px5, $py5, $green); //输出画布图像,终于正常了!
imagepng($img); ?>
PHP学习笔记(4)GD库画五角星的更多相关文章
- 一起学习PHP中GD库的使用(三)
上篇文章我们已经学习了一个 GD 库的应用,那就是非常常用的制作验证码的功能.不过在现实的业务开发中,这种简单的验证码已经使用得不多了,大家会制作出更加复杂的验证码来使用.毕竟现在的各种外挂软件已经能 ...
- 一起学习PHP中GD库的使用(二)
在日常的开发过程中,GD 库最常用的功能就是帮我们对图片进行一些处理,当然,除了处理已有的图片之外,它也可以直接来画图,就像我们最常见的图片验证码.今天的内容主要就是和画图有关,所以最后我们也会做一个 ...
- 一起学习PHP中GD库的使用(一)
又到了一个大家非常熟悉的库了,对于图像图形的处理来说,GD 库是 PHPer 们绕不过去的一道坎.从很早很早的 CMS 或者 Discuz 时代,各类开源软件在安装的时候就会明确地指出 GD 库是它们 ...
- php笔记之GD库图片创建/简单验证码
燕十八 公益PHP培训 课堂地址:YY频道88354001 学习社区:www.zixue.it php画图:比如说验证码,缩略图,加水印都要用到GD库,所以要开启gd2库,才能用 首先找到php.in ...
- CSS学习笔记一:css 画平面图形
最近在学习CSS,先从CSS画点平面图形入手,发现除了正方形.长方形此类比较简单,只要有长宽设置恰当即可,画圆要涉及radius,然后恢复到做界面的最讨厌的状态了,不断的修改设值,调整数据,所幸并不多 ...
- iOS学习笔记16-数据库SQLite
一.数据库 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等.离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式: 归档:NSKeyedArchiver 偏好设置:NSU ...
- PHP学习笔记(5)GD库画验证码
<?php header("content-type:image/png"); $width = 500; $height = 500; $img = imagecreate ...
- LearnOpenGL学习笔记(一)画个三角形
开始学习OpenGL,参考的是著名的LearnOpenGL这个网站,在这里做一些总结性的记录,只是方便自己日后查找或者记录自己的一些拓展思考,关于OpenGL的具体内容请移步: https://lea ...
- Direct2D 学习笔记(2)画刷 Brush
画刷的使用方法 需要包含的文件:<wincodec.h> 需要包含的库: "windowscodecs.lib" 资源网址: https://docs.micro ...
随机推荐
- tez是什么?
[Apache Tez是什么?] http://dongxicheng.org/mapreduce-nextgen/apache-tez/ 浅谈Apache Tez中的优化技术 http://dong ...
- iOS:UITableViewCell使用详解
转载自:http://my.oschina.net/u/2340880/blog/410421
- c/c++在windows下获取时间和计算时间差的几种方法总结 【转】
http://blog.csdn.net/coder_xia/article/details/6566708 一.标准C和C++都可用 1.获取时间用time_t time( time_t * tim ...
- distance field(占坑
signed distance field https://kosmonautblog.wordpress.com/2017/05/09/signed-distance-field-rendering ...
- Spring框架学习(5)spring整合struts2
内容源自:spring整合struts2 一.spring框架对struts等表现层框架的整合原理 : 使用spring的ioc容器管理struts中用于处理请求的Action 将Action配置成i ...
- Solidworks如何自动打开和关闭特征识别FeatureWorks
如果直接对已有的零件识别特征,可能会报错 删除多余的特征,先只保留一个输入(注意没有必要连草图也删掉,草图不会影响识别特征,你识别完了之后草图再接着该拉伸拉伸,该切除切除),然后再次执行识别特征, ...
- 饿了么ui添加事件
最近饿了么ui挺火,连美团都有项目组再用,刚好最近项目重构,就引入了进来,刚用上就发现一个大坑,在配合vue使用时,居然无法添加自定义事件 找了半天才发现原因是需要在事件后面加上 ‘’.native ...
- webpack安装以及一些配置
在用webpack之前... 或说没有实现组件化之前的web1.0时代! 最终迈向web2..0之后的时代! ===============华丽的分割线================== 安装步骤有 ...
- eslint for...in 报错处理
示例代码: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF ...
- 纯css3响应式3d翻转菜单
前端开发whqet,csdn,王海庆,whqet,前端开发专家 周末快乐哈,今天来看一个纯CSS3实现的3d翻转菜单.3d响应式菜单,希望对大家有所帮助. 在线赞赏效果.在线编辑代码,或者下载收藏. ...