현재 위치: > 최신 기사 목록> imageopenpolygon ()의 폐쇄 효과에 대한 좌표 순서의 효과

imageopenpolygon ()의 폐쇄 효과에 대한 좌표 순서의 효과

M66 2025-06-02

PHP를 사용하여 이미지를 처리 ​​할 때 ImageOpenPolygon ()은 열린 다각형 경로를 그릴 수있는 매우 실용적인 기능입니다 (즉, 헤드와 테일은 자동으로 연결되지 않음). 그러나 많은 친구들이 사용할 때 당황 할 수 있습니다.

이 문제를 파악하기 위해 자세한 테스트를 수행했습니다. 아래에서 함께 살펴 보겠습니다.

ImageOpenPolygon ()

PHP의 GD 라이브러리에서 ImageOpenPolygon ()은 열린 다각형 라인을 그리는 데 사용됩니다. ImagePolygon () 과 달리 첫 번째 지점과 마지막 지점을 자동으로 연결하지 않습니다.

기본 사용 예제 :

 <?php
// 캔버스를 만듭니다
$image = imagecreatetruecolor(400, 400);

// 배경색을 흰색으로 설정합니다
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);

// 라인 색상을 파란색으로 설정하십시오
$blue = imagecolorallocate($image, 0, 0, 255);

// 포인트 배열을 정의하십시오(시계 방향)
$points = [
    50, 50,  // 첫 번째 요점
    150, 50, // 두 번째 요점
    150, 150,// 세 번째 요점
    50, 150  // 네 번째 요점
];

// 열린 다각형을 그립니다
imageopenpolygon($image, $points, count($points) / 2, $blue);

// 출력 사진
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>

이 코드를 실행하면 출발점과 종말점 사이에 연결이없는 U 자형 개방 사변형이 표시됩니다.

효과를보기 위해 좌표 순서를 변경하십시오

다음으로 포인트 순서를 시계 반대 방향 으로 조정합니다.

 $points = [
    50, 50,  // 첫 번째 요점
    50, 150, // 두 번째 요점
    150, 150,// 세 번째 요점
    150, 50  // 네 번째 요점
];

다시 실행하면 선이 다르게 움직이는 것을 제외하고 그려진 모양이 여전히 열려 있습니다.

요약 1 :

  • 좌표 순서 로 인해 그림이 닫히지 않습니다 .

  • 좌표 순서는 선의 도면 순서에만 영향을 미칩니다 (즉, 선의 방향은 변경됩니다).

수동으로 닫고 싶다면 어떻게해야합니까?

그림이 닫히기를 원한다면 예를 들어 배열 끝에 첫 번째 지점을 수동으로 추가해야합니다.

 $points = [
    50, 50,
    150, 50,
    150, 150,
    50, 150,
    50, 50 // 再加一次첫 번째 요점
];

이런 식으로 ImageOpenPolygon () 에 의해 그린 그림은 끝에 연결되며 닫힌 다각형처럼 보입니다!

샘플 다이어그램 미리보기

다른 효과를 촉진하기 위해 다음은 샘플 이미지 주소입니다.

(직접 생성하려면 위의 PHP 코드로 직접 시도 할 수도 있습니다.)

요약

  • imageOpenPolygon ()은 좌표 순서에 관계없이 기본적으로 닫히지 않습니다 .

  • 닫아야하는 경우 마지막에 첫 번째 포인트를 추가해야합니다 .

  • 좌표 순서는 닫힌 동작이 아니라 선 그리기 방향에 영향을 미칩니다.

이 실용적인 설명이 실제 개발에서 ImageOpenPolygon () 의 작은 세부 사항을 빠르게 이해하고 마스터하는 데 도움이되기를 바랍니다.