1. <?php
  2. //加header头,不然浏览器乱码
  3. header("content-type: image/png");
  4. //创建画布资源
  5. $img = imagecreatetruecolor(500, 500);
  6. //创建颜色
  7. $green = imagecolorallocate($img, 0, 255, 0);
  8. //画椭圆
  9. // imagefilledellipse($img, 200, 200, 100, 100, $green);
  10. $r = 100;//半径
  11. $degree36 = deg2rad(36);//直角三角形18度,改成弧度
  12. $l = 2*$r*sin($degree36);
  13. $a = $l*cos($degree36);//长边1长度
  14. $b = $l*sin($degree36);//短边1长度
  15. $c = $l/2;//短边2长度
  16. $d = $r*cos($degree36);//长边2长度
  17. //五个顶点坐标
  18. $px1 = 200;
  19. $py1 = 200;
  20. $px2 = $px1+$a;
  21. $py2 = $py1+$b;
  22. $px3 = $px1+$c;
  23. $py3 = $py1+$r+$d;
  24. $px4 = $px1-$c;
  25. $py4 = $py1+$r+$d;
  26. $px5 = $px1-$a;
  27. $py5 = $py1+$b;
  28. //画多边形,points是顶点坐标数组,num_points是顶点个数,妈蛋这个画不出来五角星,只能拼出来。还不如用直线画
  29. $points = array($px1,$py1,$px2,$py2,$px3,$py3,$px4,$py4,$px5,$py5);
  30. // imagepolygon($img, $points, 5, $green);
  31. //画五条线
  32. imageline($img, $px1, $py1, $px3, $py3, $green);
  33. imageline($img, $px1, $py1, $px4, $py4, $green);
  34. imageline($img, $px2, $py2, $px4, $py4, $green);
  35. imageline($img, $px2, $py2, $px5, $py5, $green);
  36. imageline($img, $px3, $py3, $px5, $py5, $green);
  37.  
  38. //输出画布图像,终于正常了!
  39. imagepng($img);
  40.  
  41. ?>

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. Docker创建centos的LNMP镜像

    前段时间重装了系统,今天刚好有时间,就用docker安装一个lnmp开发环境,下面是我的安装笔记. 1. 安装docker 这个就不说了,不会的可以看下我之前的文章<Docker介绍及安装> ...

  2. 【License】一张图该诉你各种License的含义?

    一张图该诉你各种License的含义:

  3. linux ubuntu下abaqus-6.14安装破解完全指南

    本人亲测可用 目录 安装前准备 安装过程 机器配置 腾讯云服务器 ubuntu server 16.10 1.首先要在服务器上安装gui及相关依赖 sudo apt-get install ubunt ...

  4. android工具类(2)NetWorkHelper 网络工具类

    import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkIn ...

  5. ASP.NET MVC扩展之HtmlHelper辅助方法

    什么是HtmlHelper辅助方法? 其实就是HtmlHelper类的扩展方法,如下所示: namespace System.Web.Mvc.Html { public static class Fo ...

  6. Python strings, 元组tuples, 和numbers是不可更改的对象,而list,dict等则是可以修改的

    在python中,strings, 元组tuples, 和numbers是不可更改的对象,而list,dict等则是可以修改的对象. a = 1 def fun(a):     a = 2 fun(a ...

  7. 算法笔记_083:蓝桥杯练习 合并石子(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 在一条直线上有n堆石子,每堆有一定的数量,每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置,合并的费用为两堆石子的总数.求把所有石子 ...

  8. 禁止chrome自动更新

    删除C:\Program Files (x86)\Google文件夹下面的updata文件夹

  9. tomcat禁用webdav

    在tomcat的web.xml,以及自己项目的web.xml中,均需添加以下内容: <security-constraint> <web-resource-collection> ...

  10. hibernate 多对多双向关联

    package com.bjsxt.hibernate; import java.util.HashSet; import java.util.Set; import javax.persistenc ...