> 백엔드 개발 > PHP 튜토리얼 > PHP에서 다각형, 호, 타원을 그리는 방법은 무엇입니까? (사진과 글로 자세한 설명)

PHP에서 다각형, 호, 타원을 그리는 방법은 무엇입니까? (사진과 글로 자세한 설명)

WBOY
풀어 주다: 2023-04-10 17:52:01
원래의
3258명이 탐색했습니다.

저번 글에서 "PHP에서 색상을 정의하고, 점을 그리고, 선과 사각형을 그리는 방법에 대한 자세한 분석이요?"를 가져왔습니다. "는 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(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>
로그인 후 복사

输出结果:

PHP에서 다각형, 호, 타원을 그리는 방법은 무엇입니까? (사진과 글로 자세한 설명)

绘制椭圆

在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(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>
로그인 후 복사

输出结果:

PHP에서 다각형, 호, 타원을 그리는 방법은 무엇입니까? (사진과 글로 자세한 설명)

绘制弧线

在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(&#39;Content-type:image/jpeg&#39;);
        imagejpeg($img);
        imagedestroy($img);
    ?>
    로그인 후 복사
    두 함수가 직사각형과 비슷한 이유는 imagepolygon() 함수 뒤의 색은 다각형 가장자리를 그리는 색이고, imagefilledpolygon() 함수 뒤의 색은 함수는 다각형 색상의 내부 채우기를 그리는 색상입니다.

    구문에서 $image는 캔버스를 나타냅니다. $points는 배열입니다. 세 번째 매개변수 $num_points는 3보다 커야 하는 다각형의 정점 수를 설정하는 데 사용됩니다.

    예제는 다음과 같습니다.

    rrreee
    출력 결과:

    PHP에서 다각형, 호, 타원을 그리는 방법은 무엇입니까? (사진과 글로 자세한 설명)PHP에서 다각형, 호, 타원을 그리는 방법은 무엇입니까? (사진과 글로 자세한 설명)

    타원 그리기

    🎜🎜🎜PHP에서는 imageellipse() 함수를 사용하여 타원을 그릴 수 있습니다. 다각형 그리기와 유사합니다. , imagefilledellipse() 함수를 사용하여 타원을 그리고 채울 수도 있습니다. 구문 형식은 다음과 같습니다. 🎜rrreee🎜 여기서 $x와 $y는 중심의 수평 및 수직 좌표를 나타냅니다. ellipse; $width 및 $height는 각각 타원의 너비와 높이를 나타내며, 다음 $colorb는 각각 타원의 가장자리 색상과 타원의 채우기 색상을 나타냅니다. 🎜🎜🎜예제는 다음과 같습니다. 🎜rrreee🎜출력 결과: 🎜🎜PHP에서 다각형, 호, 타원을 그리는 방법은 무엇입니까? (사진과 글로 자세한 설명)🎜🎜🎜🎜호 그리기🎜🎜🎜🎜🎜는 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_CHORD
: 시작점과 끝점을 연결하는 데 직선만 사용합니다. IMG_ARC_PIE와 상호 배타적이라는 점에 유의해야 합니다. 🎜🎜
  • 🎜IMG_ARC_NOFILL: 호 또는 현에는 윤곽선만 있고 채우기는 없습니다. ;🎜🎜
  • 🎜IMG_ARC_EDGED: 직선을 사용하여 시작점과 끝점을 중심점에 연결합니다. 🎜🎜🎜🎜예제는 다음과 같습니다. 🎜🎜rrreee🎜출력 결과: 🎜🎜🎜🎜🎜🎜추천 학습: "🎜PHP Video Tutorial🎜"🎜
  • 위 내용은 PHP에서 다각형, 호, 타원을 그리는 방법은 무엇입니까? (사진과 글로 자세한 설명)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    관련 라벨:
    원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿