【问题标题】:Arrow in pycairopycairo 中的箭头
【发布时间】:2019-09-13 13:28:23
【问题描述】:

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

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

这提供了一条无向线,但我需要一个箭头。我如何在 pycairo 中完成此操作?

【问题讨论】:

    标签: python draw pycairo


    【解决方案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()
    

    这会产生以下图像:

    根据需要更改参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-19
      • 2015-12-16
      • 1970-01-01
      • 2020-11-21
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多