在pycairo中的箭头

3

我需要画一条有方向的线或箭头。

context.move_to(10,10) context.line_to(10,100)

这段代码提供了一条无方向的线,但我需要一个箭头。在pycairo中如何实现呢?

1个回答

1

由于没有内置的箭头,您需要几何定义一个。以下是方法。

arrow_length = 0.45
arrow_angle = math.pi/4
arrowhead_angle = math.pi/6
arrowhead_length = 0.3

ctx.move_to(0.5, 0.5) # move to center of canvas

ctx.rel_line_to(arrow_length * math.cos(arrow_angle), arrow_length * math.sin(arrow_angle))
ctx.rel_move_to(-arrowhead_length * math.cos(arrow_angle - arrowhead_angle), -arrowhead_length * math.sin(arrow_angle - arrowhead_angle))
ctx.rel_line_to(arrowhead_length * math.cos(arrow_angle - arrowhead_angle), arrowhead_length * math.sin(arrow_angle - arrowhead_angle))
ctx.rel_line_to(-arrowhead_length * math.cos(arrow_angle + arrowhead_angle), -arrowhead_length * math.sin(arrow_angle + arrowhead_angle))

ctx.set_source_rgb(0,0,0)
ctx.set_line_width(0.08)
ctx.stroke()

这将生成以下图片:

enter image description here

根据您的需要更改参数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接