php使用imagefilledellipse()函数绘制一个圆柱体图形
时间: 2024-02-05 12:13:07 浏览: 140
php打造完美柱状图
5星 · 资源好评率100%
可以使用以下代码实现:
```php
<?php
// 创建画布
$width = 400;
$height = 400;
$image = imagecreatetruecolor($width, $height);
// 分配颜色
$bgColor = imagecolorallocate($image, 255, 255, 255);
$borderColor = imagecolorallocate($image, 0, 0, 0);
$fillColor = imagecolorallocate($image, 255, 0, 0);
// 填充背景色
imagefill($image, 0, 0, $bgColor);
// 绘制圆柱体
$cx = $width / 2;
$cy = $height / 2;
$rx = 100;
$ry = 50;
$z = 200; // 圆柱体高度
for ($i = 0; $i <= $z; $i++) {
$r = $ry * (1 - $i / $z); // 椭圆短轴随高度变化
$x1 = $cx - $rx;
$y1 = $cy - $r;
$x2 = $cx + $rx;
$y2 = $cy + $r;
imagefilledellipse($image, $cx, $cy + $i, $rx * 2, $ry * 2, $fillColor); // 上半部分
imageellipse($image, $cx, $cy + $i, $rx * 2, $ry * 2, $borderColor); // 上半部分的边框
imagefilledellipse($image, $cx, $cy + $i + $z, $rx * 2, $ry * 2, $fillColor); // 下半部分
imageellipse($image, $cx, $cy + $i + $z, $rx * 2, $ry * 2, $borderColor); // 下半部分的边框
imageline($image, $x1, $cy + $i, $x1, $cy + $i + $z, $borderColor); // 左侧面
imageline($image, $x2, $cy + $i, $x2, $cy + $i + $z, $borderColor); // 右侧面
}
// 输出图像
header('Content-Type: image/png');
imagepng($image);
// 释放内存
imagedestroy($image);
?>
```
这段代码会生成一个宽高都为400像素的画布,并在中央绘制一个圆柱体图形,其中圆柱体的长轴为200像素,短轴为100像素,红色填充。你可以根据需要修改长轴、短轴、高度、填充颜色等参数。
阅读全文