首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python模式下使用处理PGraphics?

在Python模式下使用处理PGraphics?
EN

Stack Overflow用户
提问于 2020-04-10 20:11:02
回答 1查看 144关注 0票数 0

在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来解决。

那么它是如何做到的呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-13 05:56:08

可以使用global修复此问题。请确保在初始化画布时也使用global,否则它是一个局部变量,并且全局画布引用可能仍为None

下面是一个基本的例子:

代码语言:javascript
复制
# 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()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61139974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档