<?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库画五角星的更多相关文章

  1. 一起学习PHP中GD库的使用(三)

    上篇文章我们已经学习了一个 GD 库的应用,那就是非常常用的制作验证码的功能.不过在现实的业务开发中,这种简单的验证码已经使用得不多了,大家会制作出更加复杂的验证码来使用.毕竟现在的各种外挂软件已经能 ...

  2. 一起学习PHP中GD库的使用(二)

    在日常的开发过程中,GD 库最常用的功能就是帮我们对图片进行一些处理,当然,除了处理已有的图片之外,它也可以直接来画图,就像我们最常见的图片验证码.今天的内容主要就是和画图有关,所以最后我们也会做一个 ...

  3. 一起学习PHP中GD库的使用(一)

    又到了一个大家非常熟悉的库了,对于图像图形的处理来说,GD 库是 PHPer 们绕不过去的一道坎.从很早很早的 CMS 或者 Discuz 时代,各类开源软件在安装的时候就会明确地指出 GD 库是它们 ...

  4. php笔记之GD库图片创建/简单验证码

    燕十八 公益PHP培训 课堂地址:YY频道88354001 学习社区:www.zixue.it php画图:比如说验证码,缩略图,加水印都要用到GD库,所以要开启gd2库,才能用 首先找到php.in ...

  5. CSS学习笔记一:css 画平面图形

    最近在学习CSS,先从CSS画点平面图形入手,发现除了正方形.长方形此类比较简单,只要有长宽设置恰当即可,画圆要涉及radius,然后恢复到做界面的最讨厌的状态了,不断的修改设值,调整数据,所幸并不多 ...

  6. iOS学习笔记16-数据库SQLite

    一.数据库 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等.离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式: 归档:NSKeyedArchiver 偏好设置:NSU ...

  7. PHP学习笔记(5)GD库画验证码

    <?php header("content-type:image/png"); $width = 500; $height = 500; $img = imagecreate ...

  8. LearnOpenGL学习笔记(一)画个三角形

    开始学习OpenGL,参考的是著名的LearnOpenGL这个网站,在这里做一些总结性的记录,只是方便自己日后查找或者记录自己的一些拓展思考,关于OpenGL的具体内容请移步: https://lea ...

  9. Direct2D 学习笔记(2)画刷 Brush

    画刷的使用方法 需要包含的文件:<wincodec.h> 需要包含的库: "windowscodecs.lib" 资源网址:    https://docs.micro ...

随机推荐

  1. Jupyter Notebook 快捷键

    Jupyter Notebook 快捷键 从命令模式进入编辑模式需按 Enter 键,从编辑模式切换到命令模式需按Esc 键. Jupyter Notebook 是一个交互式笔记本程序, 其有丰富的快 ...

  2. .NET-DataColumn.DataType 属性

    public DataTable MakeDataTable(){ DataTable myTable; DataRow myNewRow; // Create a new DataTable. my ...

  3. 转: 腾讯Bugly干货分享:Android应用性能评测调优

    转:http://www.kuqin.com/shuoit/20150618/346693.html?utm_source=www.race604.com 前言 在智能手机App竞争越来越激烈的今天, ...

  4. Asp.Net生成无限级菜单

    首先创建SQL脚本 ) DROP TABLE [Menu] CREATE TABLE [Menu] ( , ) NOT NULL, ) NULL, ), ) NULL, ), [AddTime] [d ...

  5. kubernetes 部署SonarQube 7.1 关联LDAP

    之前有写过一篇如何在kubernetes上部署SonarQube的文档, 然后由于客户的需求,需要SonarQube关联LDAP的用户, 于是今天花了半天时间研究了以下如何在原有的基础上安装LDAP插 ...

  6. 超棒的JS移动设备滑动内容幻灯实现 - Swiper

    来源:GBin1.com 在线演示 如果你需要一款帮助你实现手机或者移动设备上内容幻灯实现的JS类库的话 , Swiper是一个不错的选择,它不依赖于任何第三方的类库.因此体积非常小,适合运行在移动设 ...

  7. UVA 10441 - Catenyms(欧拉道路)

    UVA 10441 - Catenyms 题目链接 题意:给定一些单词,求拼接起来,字典序最小的,注意这里的字典序为一个个单词比过去,并非一个个字母 思路:欧拉回路.利用并查集判联通,然后欧拉道路判定 ...

  8. STL_算法_区间的比較(equal、mismatch、 lexicographical_compare)

    C++ Primer 学习中.. . 简单记录下我的学习过程 (代码为主) //全部容器适用 equal(b,e,b2)       //用来比較第一个容器[b,e)和第二个容器b2开头,是否相等 e ...

  9. Linux命令计算文件中某一列的平均值

    例如每秒执行一次top命令,把结果输出到某个文件中保存,现在需要统计这段时间内某个进程的平均CPU占用率,可使用以下命令 | grep "GameServer_r" | awk ' ...

  10. easyui datebox 扩展清空按钮

    /** * 给时间框控件扩展一个清除的按钮 */ $.fn.datebox.defaults.cleanText = '清空'; (function ($) { var buttons = $.ext ...