현재 위치: > 최신 기사 목록> 동적 그래픽을 그리기 위해 imageOpenPolygon ()과 결합 된 다각형 스케일링 알고리즘

동적 그래픽을 그리기 위해 imageOpenPolygon ()과 결합 된 다각형 스케일링 알고리즘

M66 2025-05-18

소개

그래픽 처리 및 동적 도면의 응용 분야에서 PHP는 이미지 생성, 처리 및 변환을 지원하는 강력한 GD 라이브러리를 제공합니다. 이러한 그래픽 작업에서 도면 다각형은 일반적인 요구 사항입니다. ImageOpenPolygon () 함수는 PHP의 GD 라이브러리에서 직접 제공되지 않지만 합리적인 계산 및 드로잉 방법을 통해 다각형의 스케일링 및 동적 디스플레이를 달성 할 수 있습니다. 이 기사는 다각형 스케일링 알고리즘과 PHP의 그래픽 기능을 결합하여 웹 페이지에서 스케일링 된 다각형을 동적으로 그리는 방법을 설명합니다.

준비

먼저 PHP 환경에서 GD 라이브러리가 활성화되어 있는지 확인해야합니다. 다음 PHP 코드를 사용하여 GD 라이브러리가 활성화되어 있는지 확인할 수 있습니다.

 <?php
if (extension_loaded('gd')) {
    echo 'GD library is enabled';
} else {
    echo 'GD library is not enabled';
}
?>

GD 라이브러리가 활성화되면 동적 다각형을 그리기 위해 코드를 작성하기 시작할 수 있습니다.

다각형 스케일링 알고리즘

다각형의 스케일링 알고리즘의 핵심 아이디어는 다각형의 각 정점의 스케일링 위치를 계산하는 것입니다. 우리가 2 차원 평면에 다각형이 있고 각 정점의 좌표가 알려져 있다고 가정 해 봅시다. 스케일링 계수를 설정하면 스케일링 계수에 따라 각 정점의 좌표를 변경할 수 있습니다.

구체적으로, 정점 좌표가 $ (x_1, y_1), (x_2, y_2), ..., (x_n, y_n)의 원래 다각형이 있다고 가정합니다. 스케일링 계수 $ k $를 설정하면 새 좌표 $ (x'_i, y'_i) $가 다음과 같이 계산됩니다.

 x'_i = x_i \times k
y'_i = y_i \times k

스케일링 계수 $ k $를 조정하면 좁거나 확대 된 다각형을 얻을 수 있습니다.

PHP에서 GD 라이브러리를 사용하여 동적 다각형을 그립니다

PHP의 GD 라이브러리를 사용하여 다각형을 그리며 스케일링 알고리즘을 결합하여 동적 효과를 달성합니다. 다음 코드 예제는 GD 라이브러리를 사용하여 다각형을 그리거나 스케일하는 방법을 보여줍니다.

1. 초기 다각형을 그립니다

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

// 배경색을 설정하십시오
$background_color = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $background_color);

// 다각형의 색상을 설정하십시오
$polygon_color = imagecolorallocate($image, 0, 0, 255);

// 다각형의 정점을 정의하십시오
$vertices = [100, 100, 200, 100, 200, 200, 100, 200];

// 다각형을 그립니다
imagepolygon($image, $vertices, 4, $polygon_color);

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

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

2. 스케일링 알고리즘을 구현하고 동적 다각형을 그립니다

변수를 제어하여 다각형을 동적으로 확장 할 수 있습니다. 다음 코드는이를 달성하는 방법을 보여줍니다.

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

// 배경색을 설정하십시오
$background_color = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $background_color);

// 다각형의 색상을 설정하십시오
$polygon_color = imagecolorallocate($image, 0, 0, 255);

// 다각형의 정점을 정의하십시오
$vertices = [100, 100, 200, 100, 200, 200, 100, 200];

// 스케일링 계수
$scale = 1.5; // 将스케일링 계수设置为1.5

// 스케일링 된 정점을 계산하십시오
$scaled_vertices = [];
foreach ($vertices as $index => $vertex) {
    if ($index % 2 == 0) {
        // x 조정 스케일링
        $scaled_vertices[] = $vertex * $scale;
    } else {
        // y 조정 스케일링
        $scaled_vertices[] = $vertex * $scale;
    }
}

// 스케일링 된 다각형을 그립니다
imagepolygon($image, $scaled_vertices, 4, $polygon_color);

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

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

이 코드에서 $ 스케일 변수는 다각형의 스케일링 계수를 제어합니다. 스케일링 계수가 증가하면 다각형이 커집니다. 스케일링 계수가 감소하면 다각형이 작아집니다.

동적 효과의 구현

동적 효과를 달성하기 위해, 우리는 루프에서 스케일링 계수를 지속적으로 수정하고 정기적으로 페이지를 새로 고쳐서 다양한 스케일링 계수의 다각형을 표시 할 수 있습니다. 간단한 동적 효과 구현 예는 다음과 같습니다.

 <?php
// 컨텐츠 유형을 HTML
header('Content-Type: text/html');

// 스케일 된 다각형을 동적으로 표시합니다
echo "<html><body>";
for ($scale = 1; $scale <= 2; $scale += 0.1) {
    // 사용 PHP 그리고 JavaScript 페이지를 새로 고칩니다,각 줌 후 효과를 보여줍니다
    echo "<div style='width:400px; height:400px;'>";
    echo "<img src='image.php?scale=$scale' />";
    echo "</div>";
    usleep(500000);  // 기다리다 0.5 두번째
}
echo "</body></html>";
?>

이 코드에서는 PHP를 사용하여 이미지를 동적으로 생성하고 스케일 매개 변수를 통해 스케일링 계수의 변화를 제어합니다. 페이지가 새로 고침 될 때마다 스케일링 비율이 다른 다각형이 표시되어 동적 효과가 나타납니다.

요약

이 기사에서는 다각형 스케일링 알고리즘 및 PHP 기능과 함께 동적 그래픽을 그리는 방법에 대해 설명합니다. 다각형의 정점 좌표를 계산하고 GD 라이브러리의 ImagePolygon () 함수를 사용하여 다각형의 도면 및 스케일링 효과를 달성 할 수 있습니다. 또한 스케일링 계수의 동적 업데이트를 통해 동적 디스플레이를 달성하고 웹 페이지 새로 고침 메커니즘을 결합하여 다각형 스케일링의 동적 효과를 제시 할 수 있습니다.