현재 위치: > 최신 기사 목록> ImageOpenPolygon ()을 사용하여 별 및 눈송이와 같은 복잡한 그래픽을 그립니다.

ImageOpenPolygon ()을 사용하여 별 및 눈송이와 같은 복잡한 그래픽을 그립니다.

M66 2025-06-05

PHP에서 ImageOpenPolygon ()은 일련의 좌표 지점을 통해 열린 (닫지 않음) 다각형을 그릴 수있는 매우 흥미로운 기능입니다. 이것은 별이나 눈송이 패턴과 같은 복잡한 그래픽을 그릴 때 특히 유용합니다.

이 기사는 ImageOpenPolygon ()을 사용하는 방법을 설명하고 간단한 5 점 스타와 기본 눈송이 구조를 그리는 방법을 보여줍니다.

기본 이해 : ImageOpenPolygon () 함수

 bool imageopenpolygon(
    GdImage $image,
    array $points,
    int $num_points,
    int $color
)
  • $ 이미지 : 그릴 이미지 리소스.

  • $ 포인트 : [x1, y1, x2, y2, ...] 형식의 모든 정점 좌표를 포함하는 배열.

  • $ num_points : 정점 수.

  • $ 컬러 : 라인의 색상.

참고 : ImageOpenPolygon () 은 이러한 점을 순서대로 연결하지만 자동으로 그림을 닫지는 않습니다.

예 1 : 5 포인트 스타를 그립니다

먼저, 우리는 캔버스를 만들고 간단한 5 포인트 스타를 그립니다.

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

// 색상을 할당합니다
$backgroundColor = imagecolorallocate($image, 255, 255, 255); // 흰색 배경
$starColor = imagecolorallocate($image, 255, 0, 0); // 레드 스타

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

// 5 점의 별의 정점을 정의하십시오
$points = [
    150, 20,   // 맨 위
    179, 110,
    270, 110,
    197, 165,
    220, 250,
    150, 200,
    80, 250,
    103, 165,
    30, 110,
    121, 110
];

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

// 출력 이미지
header('Content-Type: image/png');
imagepng($image);

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

star.php 로 저장 한 후 브라우저에서 다음과 같이 액세스하십시오.

 https://m66.net/star.php

당신은 그려진 다섯 포인트 스타를 볼 수 있습니다.

예 2 : 기본 눈송이 패턴을 그립니다

간단한 눈송이는 중앙 대칭 방사선으로 시뮬레이션 할 수 있습니다.

 <?php
$image = imagecreatetruecolor(300, 300);
$backgroundColor = imagecolorallocate($image, 255, 255, 255);
$snowColor = imagecolorallocate($image, 0, 0, 255);

imagefill($image, 0, 0, $backgroundColor);

// 눈송이 센터
$centerX = 150;
$centerY = 150;
$length = 100;
$arms = 6;

// 각 점을 계산하십시오
$points = [];
for ($i = 0; $i < $arms; $i++) {
    $angle = deg2rad(360 / $arms * $i);
    $x = $centerX + cos($angle) * $length;
    $y = $centerY + sin($angle) * $length;
    $points[] = $centerX;
    $points[] = $centerY;
    $points[] = $x;
    $points[] = $y;
}

// 눈송이를 그립니다
imageopenpolygon($image, $points, count($points) / 2, $snowColor);

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

Snowflake.php 로 저장 한 후 브라우저에서 액세스하십시오.

 https://m66.net/snowflake.php

방사형 기본 눈송이 구조를 볼 수 있습니다!

요약

ImageOpenPolygon () 은 개방형 그래픽을 그리는 강력한 도구입니다. 수학적 계산 (예 : 삼각 기능)과 결합하여 별, 눈송이 및 더욱 복잡한 예술적 패턴과 같은 다양한 흥미롭고 복잡한 그래픽을 만들 수 있습니다.

Cooler Complex 그래픽을 생성하려면 루프 로직과 조정 알고리즘을 결합 하여이 드로잉 기능을 추가로 확장 할 수 있습니다!