PHP를 사용하여 이미지를 처리 할 때 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 () 의 작은 세부 사항을 빠르게 이해하고 마스터하는 데 도움이되기를 바랍니다.