PHP中怎样实现绘制多边图形、弧形和椭圆
Admin 2022-08-26 群英技术资讯 1030 次浏览
本篇内容介绍了“PHP中怎样实现绘制多边图形、弧形和椭圆”的有关知识,在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
经过之前的文章讲述,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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
empty($var) //用来检查变量是否为空(没有值或零值)isset($var) //这个//测试一个变量看它是否已被定义。gettype($var) //返回变量是什么类型“字符串”、“整数”、“布尔值”、“浮点值”等。is_bool($var) //测试一个变量看它是否包含一个布尔值(真/假)is_string($var
php怎样现实上传和下载文件?很多网站都会提供文件的上传与下载功能,那么这一操作是如何实现的?下面是PHP实现对文件上传与下载操作的代码,有需要的朋友可做参考。
php生成用户密码的两种方法:1、hash密码,主要使用单向分散算法来创建密码分散。2、md5密码,是一种非对称加密。最好在加密时添加混淆字符串。
当文件过大,或者用户网络状态一般,通常上传过程需要一段时间,如果这时候让用户白屏等待的话,相信大部分用户都会直接关掉应用,所以一个监控上传进度,并实时向用户报告的需求就被产品汪摆在了桌面上。一个高逼格的上传进度提示,会让你的应用瞬间变成被仰望的存在。 PHP在5.4之前,总是需要安装额外的扩展才能监控到文件上传进度。而从5.4开始,引入session.upload_progress的新特性,我们
//$startdate是开始时间,$enddate是结束时间<?php$startdate="2011-3-1511:50:00";$enddate="2012-12-1212:12:12";$date=floor((strtotime($enddate)-strtotime($startdate))/86400);echo"相差天数:".$date."天<b
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008