현재 위치: > 최신 기사 목록> 좌표 배열을 동적으로 생성하여 임의의 모서리가있는 다각형을 그립니다.

좌표 배열을 동적으로 생성하여 임의의 모서리가있는 다각형을 그립니다.

M66 2025-05-29

이미지 처리 분야에서 PHP의 GD 라이브러리를 사용하여 그래픽을 그리는 것이 일반적인 기술입니다. 그중에서도 ImageOpenPolygon 함수 (올바른 함수 이름은 ImagePolygon 이어야 함)를 사용하여 모든 모서리의 다각형을 그리는 데 사용할 수 있습니다. 이 기사는 좌표 어레이를 동적으로 생성하고이를 사용하여 일반 N- 사이드를 그리는 방법을 자세히 소개합니다.

1. ImagePolygon이란 무엇입니까?

ImagePolygon () 은 PHP GD 라이브러리에서 다각형을 그리는 데 사용되는 함수입니다.
기본 사용량은 다음과 같습니다.

 bool imagepolygon(
    GdImage $image,
    array $points,
    int $num_points,
    int $color
)
  • $ 이미지 는 이미지 리소스입니다.

  • $ 포인트[x1, y1, x2, y2, ..., xn, yn] 과 같은 포인트 배열, 형식입니다.

  • $ num_points 는 포인트 수입니다 (배열 요소의 수가 아닌 2로 나뉩니다).

  • $ 색상 은 색상입니다.

2. 좌표 배열을 동적으로 생성하는 방법은 무엇입니까?

수많은 가장자리 (펜타곤, 문어 등)의 다각형을 그려서 간단한 삼각 기능을 사용하여 좌표를 생성 할 수 있습니다. 아이디어는 다음과 같습니다.

  • 다각형의 중심 지점 (CX, Cy) 을 설정하고;

  • 반경 R을 설정합니다 (즉, 중심에서 정점까지의 거리);

  • 각 정점을 360 °로 균등하게 분배하십시오.

  • 각 정점의 좌표는 사인 ( sin ) 및 코사인 ( COS )에 의해 계산 될 수 있습니다.

공식은 다음과 같습니다.

 x = cx + r * cos(각도)
y = cy + r * sin(각도)

php cos ()sin () 에 의해 수신 된 각도는 라디안이며 deg2rad ()를 사용하여 변환해야합니다.

3. PHP 예제를 완료하십시오

다음은 좌표를 동적으로 생성하고 수많은 가장자리의 다각형을 그리는 방법을 보여주는 완전한 예입니다.

 <?php
// 사진 크기를 설정하십시오
$width = 400;
$height = 400;

// 캔버스를 만듭니다
$image = imagecreatetruecolor($width, $height);

// 색상을 할당합니다
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);

// 배경을 채우십시오
imagefill($image, 0, 0, $white);

// 다각형 매개 변수
$number_of_sides = 7; // 예를 들어,헵타곤을 그리십시오
$radius = 150; // 반지름
$centerX = $width / 2;
$centerY = $height / 2;

// 좌표 지점을 생성합니다
$points = [];
for ($i = 0; $i < $number_of_sides; $i++) {
    $angle_deg = (360 / $number_of_sides) * $i - 90; // 상단에서 그리기 시작하십시오
    $angle_rad = deg2rad($angle_deg);
    $x = $centerX + $radius * cos($angle_rad);
    $y = $centerY + $radius * sin($angle_rad);
    $points[] = (int)$x;
    $points[] = (int)$y;
}

// 다각형을 그립니다
imagepolygon($image, $points, $number_of_sides, $black);

// 브라우저에 사진을 출력합니다
header('Content-Type: image/png');
imagepng($image);

// 자원을 파괴하십시오
imagedestroy($image);
?>

위의 코드를 PHP 파일 (예 : polygon.php )으로 저장하고 브라우저를 통해 액세스하면 일반 헵 타곤을 볼 수 있습니다.

IV. 예제 설명

  • $ number_of_sides 변수를 조정하면 다른 수의 측면을 가진 다각형을 그릴 수 있습니다.

  • $ 반경은 다각형의 크기를 결정합니다.

  • 각도의 오프셋 (여기서 -90 도)은 상단의 첫 번째 정점을 만들어 효과를 더욱 아름답게 만듭니다.

  • 이미지를 서버에 저장 해야하는 경우 ImagePng ($ image, 'path/to/file.png')를 사용할 수 있습니다.

예를 들어, 이미지를 m66.net/uploads/polygon.png 에 저장하십시오.

 imagepng($image, '/var/www/m66.net/uploads/polygon.png');

저장 디렉토리에 쓰기 권한이 있는지 확인하십시오!

5. 요약

PHP의 ImagePolygon 함수를 간단한 삼각형 조작과 결합하여 수많은 가장자리의 일반 다각형을 쉽게 그릴 수 있습니다. 이는 그래픽 생성기, 검증 코드 및 차트 구성 요소를 만들 때 크게 사용됩니다. 앞으로, 색상 채우기로 다각형을 그려 보려면 ImageFilledPolygon () 함수를 결합하여 구현할 수도 있습니다.