【问题标题】:Using Processing PGraphics in Python Mode?在 Python 模式下使用处理 PGraphics?
【发布时间】:2020-04-10 12:11:01
【问题描述】:

在 Processing 的 Java 模式中,您可以通过全局声明 PGraphics 对象、在 setup() 中使用 createGraphics() 设置它们,然后在 draw() 中引用它们来使用 PGraphics 对象。

在 Python 模式下,做什么不是很清楚,文档似乎也没有解释。你不能在 Python 中声明变量并且变量不是自动全局的,即如果我只是在 setup() c = createGraphics(400,400) 中说然后在 draw() 中说 c.beginDraw() 我得到一个 NameError: global name 'c' is not defined 这不能简单地通过在上面的行中说 global c 来修复。

那么它是怎么做到的呢?

【问题讨论】:

    标签: python processing pgraphics


    【解决方案1】:

    可以使用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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-20
      • 2021-02-28
      • 2013-06-27
      相关资源
      最近更新 更多