What are the potential pitfalls of relying on GD functions for complex shapes like rotated rectangles?

When relying on GD functions for complex shapes like rotated rectangles, one potential pitfall is that GD does not have built-in support for drawing rotated shapes. To work around this limitation, you can use a combination of GD functions to manually calculate the coordinates of the rotated rectangle and draw it using the `imagepolygon` function.

// Create a blank image
$image = imagecreatetruecolor(400, 400);

// Allocate colors
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);

// Define the coordinates of the rectangle
$points = array(
    100, 100, // Top left corner
    300, 100, // Top right corner
    300, 200, // Bottom right corner
    100, 200 // Bottom left corner
);

// Rotate the rectangle by 45 degrees
$angle = deg2rad(45);
$centerX = 200;
$centerY = 150;

for ($i = 0; $i < count($points); $i += 2) {
    $x = $points[$i] - $centerX;
    $y = $points[$i + 1] - $centerY;
    
    $newX = $x * cos($angle) - $y * sin($angle) + $centerX;
    $newY = $x * sin($angle) + $y * cos($angle) + $centerY;
    
    $points[$i] = $newX;
    $points[$i + 1] = $newY;
}

// Draw the rotated rectangle
imagefilledpolygon($image, $points, 4, $black);

// Output the image
header('Content-Type: image/png');
imagepng($image);

// Free up memory
imagedestroy($image);