저번 글에서 "PHP에서 색상을 정의하고, 점을 그리고, 선과 사각형을 그리는 방법에 대한 자세한 분석이요?"를 가져왔습니다. "는 PHP에서 점, 선, 직사각형을 그리는 관련 지식에 대해 이야기합니다. 이 기사에서는 다른 그래픽을 그리는 방법을 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다!
이전 기사에 이어 직사각형을 그릴 수 있다면 삼각형과 오각형을 어떻게 그리는지 포함하여 PHP로 그리는 기본적인 그래픽을 이미 이해했습니다. 그럼 PHP로 다각형을 그리는 방법을 살펴보겠습니다.
다각형 그리기
는 다각형을 그리는 것과 다소 유사합니다. imagepolygon()
함수와 imagefilledpolygon()
이라는 두 가지 함수가 있습니다. 함수, 구문 형식은 다음과 같습니다. 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); ?>
구문에서 $image는 캔버스를 나타냅니다. $points는 배열입니다. 세 번째 매개변수 $num_points는 3보다 커야 하는 다각형의 정점 수를 설정하는 데 사용됩니다.
rrreee
출력 결과:
imageellipse()
함수를 사용하여 타원을 그릴 수 있습니다. 다각형 그리기와 유사합니다. , imagefilledellipse()
함수를 사용하여 타원을 그리고 채울 수도 있습니다. 구문 형식은 다음과 같습니다. 🎜rrreee🎜 여기서 $x와 $y는 중심의 수평 및 수직 좌표를 나타냅니다. ellipse; $width 및 $height는 각각 타원의 너비와 높이를 나타내며, 다음 $colorb는 각각 타원의 가장자리 색상과 타원의 채우기 색상을 나타냅니다. 🎜🎜🎜예제는 다음과 같습니다. 🎜rrreee🎜출력 결과: 🎜🎜🎜🎜🎜🎜호 그리기🎜🎜🎜🎜🎜는 PHP에서 imagearc()
함수와 imagefilledarc() 함수 호 또는 원을 그립니다. 차이점은 imagearc() 함수로 그린 호의 색상이 가장자리 색상이고 imagefilledarc() 함수로 그린 호가 채워집니다. 구문 형식은 다음과 같습니다. 🎜rrreee🎜 여기서 $x와 $y는 각각 호 중심점의 수평 및 수직 좌표를 나타냅니다. $width 및 $height는 각각 $start 및 $end를 나타냅니다. 원은 각각 호의 시작 각도와 끝 각도입니다. 🎜🎜우리가 주목해야 할 점은 imagefilledarc() 함수에는 imagearc() 함수보다 $style 매개변수가 하나 더 있다는 것입니다. 이 매개변수는 색상의 채우기 유형을 설정하는 데 사용됩니다. 다음과 같은 유형이 있습니다: 🎜<ul style="max-width:90%">
<li>🎜<code>IMG_ARC_PIE
: 일반 채우기, 원형 테두리 생성 🎜🎜IMG_ARC_NOFILL
: 호 또는 현에는 윤곽선만 있고 채우기는 없습니다. ;🎜🎜IMG_ARC_EDGED
: 직선을 사용하여 시작점과 끝점을 중심점에 연결합니다. 🎜🎜🎜🎜예제는 다음과 같습니다. 🎜🎜rrreee🎜출력 결과: 🎜🎜🎜🎜🎜🎜추천 학습: "🎜PHP Video Tutorial🎜"🎜위 내용은 PHP에서 다각형, 호, 타원을 그리는 방법은 무엇입니까? (사진과 글로 자세한 설명)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!