PHP中怎样实现绘制多边图形、弧形和椭圆
Admin 2022-08-26 群英技术资讯 484 次浏览
经过之前的文章讲述,PHP绘制基本的图形已经了解了,其中就有怎样去绘制矩形,既然矩形能绘制的话,那三角形、五边形又应该怎样去绘制呢?那么接下来我们来了解一下,PHP中应该怎样去绘制多边形。
绘制多边形
跟绘制矩形时有些相似,绘制多边形也有两个函数可以完成,就是 imagepolygon()
函数和 imagefilledpolygon()
函数,它们的语法格式如下:
imagepolygon(resource $image, array $points, int $num_points, int $color) imagefilledpolygon(resource $image, array $points, int $num_points, int $color)
之所以说和矩形的两个函数相似是因为,imagepolygon()函数后面的颜色是绘制多边形边线的颜色,imagefilledpolygon()函数后面的颜色是绘制多边形内部填充的颜色。
在语法中,$image表示的是画布 ;$points 是一个数组;第三个参数 $num_points 用来设置多边形的顶点数,必须大于 3。
示例如下:
<?php $img = imagecreate(300, 150); imagecolorallocate($img, 255, 255, 255); $green = imagecolorallocate($img, 0, 255, 0); $blue = imagecolorallocate($img, 0, 0, 255); $points1 = array( 255,35, 250,15, 295,56, 233,115, 185,77 ); $points2 = array( 10,5, 100,15, 140,66, 70,135, 25,77 ); imagepolygon($img, $points1, rand(3, 5), $blue); imagefilledpolygon($img, $points2, rand(3, 5), $green); header('Content-type:image/jpeg'); imagejpeg($img); imagedestroy($img); ?>
输出结果:
绘制椭圆
在PHP中可以通过imageellipse()
函数来绘制一个椭圆,与绘制多边形类似也可以通过imagefilledellipse()
函数来绘制椭圆并且进行填充.它们的语法格式如下:
imageellipse(resource $image, int $x, int $y, int $width, int $height, int $color) imagefilledellipse(resource $image, int $x, int $y, int $width, int $height, int $color)
其中,其中 $x 和 $y 分别代表椭圆圆心的横纵坐标;$width 和 $height 分别代表椭圆的宽度和高度,后面的$colorb分别代表了椭圆的边线颜色和椭圆的填充颜色。
示例如下:
<?php $img = imagecreate(300, 150); imagecolorallocate($img, 255, 255, 255); $green = imagecolorallocate($img, 0, 255, 0); $blue = imagecolorallocate($img, 0, 0, 255); imagefilledellipse($img, 75, 75, 120, 80, $green); imageellipse($img, 225, 75, 90, 120,$blue); header('Content-type:image/jpeg'); imagejpeg($img); imagedestroy($img); ?>
输出结果:
绘制弧线
在PHP中可以通过 imagearc()
函数和 imagefilledarc()
函数来进行绘制一条弧线或者圆形,其中不同的是,imagearc() 函数绘制弧线的颜色是边线颜色,imagefilledarc() 函数绘制弧线会填充。它们的语法格式如下:
imagearc(resource $image, int $x, int $y, int $width, int $height, int $start, int $end, int $color) imagefilledarc(resource $image, int $x, int $y, int $width, int $height, int $start, int $end, int $color, int $style)
其中 $x 和 $y 分别表示为圆弧中心点的横纵坐标;$width 和 $height 分别表示为圆弧的宽度和高度;$start 和 $end 分别代表圆弧的起点角度和终点角度。
其中还有我们需要注意的是,imagefilledarc() 函数比 imagearc() 函数多了一个 $style 参数,这个参数是用来设置颜色的填充类型的。它有以下几种:
IMG_ARC_PIE
:普通填充,产生圆形边界;
IMG_ARC_CHORD
:只使用直线连接起点和终点,需要注意的是它与 IMG_ARC_PIE 互斥;
IMG_ARC_NOFILL
:指明弧或弦只有轮廓,不填充;
IMG_ARC_EDGED
:用直线将起始和结束点与中心点相连。
示例如下:
<?php $img = imagecreate(300, 100); imagecolorallocate($img, 255, 255, 255); $blue = imagecolorallocate($img, 0, 0, 255); imagearc($img, 100, 50, 50, 80, 0, 270, $blue); imagefilledarc($img, 200, 55, 80, 30, 130, 100, $blue, IMG_ARC_EDGED|IMG_ARC_NOFILL); header('Content-type:image/jpeg'); imagejpeg($img); imagedestroy($img); ?>
输出结果:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
今天我们一起来了解一下Laravel参数验证的相关内容,对于Laravel参数验证,有些朋友可能存在一些疑惑。例如验证器怎么创建的,谁创建的?如何自定义验证规则?如何实现用当期类方法作为验证规则验证函数?对此下文就给大家俩解答一下,感兴趣的朋友就继续往下看吧。
PHP导出数据超时怎么办?一般来说PHP导出数据超时可能是sql语句复杂,查询时间过长、处理查询后数据逻辑冗余和数据量过大导致响应超时这三种情况造成的,想要解决超时问题优化必不可少,因此我们可以从这三方面入手优化。
php中实现数组去重的函数:1、array_unique()先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。2、使用array_flip作为数组去重时数组的值必须能够作为键名。
注意:PHP5.5及以上版本才支持生成器。生成器提供了一种更容易的方法来实现简单的对象迭代,但没有实现一个具有 Iterator 接口的类所带来的性能开销和复杂性。生成器允...
今天小编就为大家分享一篇在thinkphp5.0路径中实现去除index.php的方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008