Использование обработки PGraphics в режиме Python? - PullRequest
0 голосов
/ 10 апреля 2020

В режиме обработки Java вы используете объекты PGraphics, объявляя их глобально, устанавливая их с помощью createGraphics () в setup (), а затем обращаясь к ним в draw ().

В Python режим, что делать не так ясно и, кажется, не объясняется документацией. Вы не можете объявлять переменные в Python, и переменные не являются автоматически глобальными, то есть если я просто скажу в setup () c = createGraphics(400,400), а затем в draw () произнесу c.beginDraw(), я получу NameError: global name 'c' is not defined, и это не может просто исправьте это, сказав global c в строке выше.

Так как же это сделать?

1 Ответ

0 голосов
/ 13 апреля 2020

Это можно исправить с помощью global. Обязательно используйте глобальный, где вы также инициализируете холст, в противном случае это локальная переменная, и ваша глобальная ссылка на холст все еще может быть None

Вот базовый c пример:

# 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()

PGraphics in PythonMode

...