Pyx 中以下参数的类型是啥?

Posted

技术标签:

【中文标题】Pyx 中以下参数的类型是啥?【英文标题】:What is the type of the below argument in Pyx?Pyx 中以下参数的类型是什么? 【发布时间】:2021-01-13 00:56:39 【问题描述】:

official documentation 描述了层可以用来设置渲染元素的遮挡

canvas.layer(name, above=None, below=None)

此方法创建或获取名称为 name 的层。

图层本身就是一个画布,可用于组合绘图操作以进行排序,即每个图层的上方和下方 其他。图层名称名称是一个点分字符串,其中点用于 形成层组的层次结构。插入图层时,将其放在 其图层组的顶部,除非此图层的另一个图层实例 组是通过上面或下面的参数指定的。

好吧,我尝试了以下方法:

c = canvas.canvas().layer("top")
t = canvas.canvas().layer("bot", below="top")
t = canvas.canvas().layer("bot", below=c)
t = canvas.canvas().layer("bot", below=0)

他们都返回了一些错误。例如字符串版本:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pyx/canvas.py", line 296, in layer
    group, layer = name.split(".", 1)
ValueError: not enough values to unpack (expected 2, got 1)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "EdgeRefining/refine_edges.py", line 174, in <module>
    t = canvas.canvas().layer("bot", below="top")
  File "/usr/lib/python3/dist-packages/pyx/canvas.py", line 312, in layer
    self.items.insert(self.items.index(self.layers[below]), self.layers[name])
KeyError: 'top'

有人用过这个功能吗?

【问题讨论】:

【参考方案1】:

图层是画布中的画布实例。这是一个例子:

from pyx import *

c = canvas.canvas()
l1 = c.layer('l1')
l2 = c.layer('l2')

l1.fill(path.circle(0, 0, 2), [color.rgb.red])
l2.fill(path.circle(3, 0, 2), [color.rgb.green])

c.writePDFfile()

现在您可以在创建图层l2时添加below='l1',红色圆圈将放置在绿色圆圈上方。您的代码中的问题是,您一直在创建新的画布实例,但是,要在同一个画布中使用多个图层。

【讨论】:

以上是关于Pyx 中以下参数的类型是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Java泛型中使用通配符或有界类型参数是啥?

SwiftUI 中 ForEach 结构的最后一个参数的函数类型是啥?

C语言中printf()的参数是啥,数据类型,数据结构是啥

Java泛型的类型参数中的问号是啥意思? [复制]

以下Java代码执行结果是啥,请详细分析为啥?

c语言中的类型名和形式参数名的意义是啥