在Processing的Java Mode中,您可以使用PGraphics对象,方法是全局声明它们,在setup()中用createGraphics()设置它们,然后在draw()中引用它们。
在Python模式中,要做什么并不是很清楚,文档似乎也没有对此进行解释。你不能在Python语言中声明变量,并且变量不是自动全局的,也就是说,如果我只是在setup()中声明c = createGraphics(400,400),然后在draw()中声明c.beginDraw(),我会得到一个NameError: global name 'c' is not defined,这不能通过在上面的代码行中简单地说global c来解决。
那么它是如何做到的呢?
发布于 2020-04-13 05:56:08
可以使用global修复此问题。请确保在初始化画布时也使用global,否则它是一个局部变量,并且全局画布引用可能仍为None
下面是一个基本的例子:
# global reference
canvas = None
def setup():
size(300, 300)
# setup global canvas
global canvas
canvas = createGraphics(300, 300)
canvas.beginDraw()
canvas.background(0);
canvas.noStroke()
canvas.blendMode(DIFFERENCE)
canvas.ellipse(150,150,150,150)
canvas.endDraw()
def draw():
# reference global canvas to draw
global canvas
image(canvas,0,0)
def mouseDragged():
diameter = dist(mouseX,mouseY,pmouseX,pmouseY)
# reference global canvas to update graphics
global canvas
canvas.beginDraw()
canvas.ellipse(mouseX,mouseY,diameter,diameter)
canvas.endDraw()

https://stackoverflow.com/questions/61139974
复制相似问题