我们在处理图像时,经常需要在画布上绘制几何图形。今天我们将深入探讨如何使用 ellipse() 函数在图像上绘制椭圆。这个功能非常实用,就像我们在画板上画圆一样,ellipse() 函数允许我们通过指定原点和一对(x, y)半径来定义椭圆的形状。如果我们想要绘制一个不完整的椭圆(例如一段弧线),只需提供起始和结束的角度作为第三个参数即可。
让我们来看看它的具体语法结构:
> 语法 :
>
>
>
>
> wand.drawing.ellipse(origin, radius, rotation)
>
>
>
>
> 参数 :
>
>
>
>
输入类型
>
—
>
(collections.abc.Sequence) – (numbers.Real, numbers.Real)
>
(collections.abc.Sequence) – (numbers.Real, numbers.Real)
>
(collections.abc.Sequence) – (numbers.Real, numbers.Real)
为了更好地理解,我们可以通过几个实际的代码示例来演示它的用法。
示例 #1:绘制标准椭圆
在这个例子中,我们将创建一个绿色的背景图,并在上面绘制一个简单的椭圆。
# Import required objects from wand modules
from wand.image import Image
from wand.drawing import Drawing
from wand.color import Color
# generate object for wand.drawing
with Drawing() as draw:
# set stroke color
draw.stroke_color = Color(‘black‘)
# set width for stroke
draw.stroke_width = 1
# fill white color in arc
draw.fill_color = Color(‘white‘)
origin = (100, 100)
perimeter = (50, 100)
# draw circle using ellipse() function
draw.ellipse(origin, perimeter)
with Image(width = 200,
height = 200,
background = Color(‘green‘)) as img:
# draw shape on image using draw() function
draw.draw(img)
img.save(filename =‘ellipse.png‘)
输出效果:
示例 #2:使用旋转参数绘制部分椭圆
如果我们只想绘制椭圆的一部分,我们可以利用 rotation 参数来指定起始和结束的角度。让我们尝试绘制一个 0 到 270 度的弧形。
# Import required objects from wand modules
from wand.image import Image
from wand.drawing import Drawing
from wand.color import Color
# generate object for wand.drawing
with Drawing() as draw:
# set stroke color
draw.stroke_color = Color(‘black‘)
# set width for stroke
draw.stroke_width = 1
# fill white color in arc
draw.fill_color = Color(‘white‘)
origin = (100, 100)
perimeter = (100, 50)
rotation = (0, 270)
# draw circle using ellipse() function
draw.ellipse(origin, perimeter, rotation)
with Image(width = 200,
height = 200,
background = Color(‘green‘)) as img:
# draw shape on image using draw() function
draw.draw(img)
img.save(filename =‘ellipsepartial.png‘)
输出效果: