'Анимация' движения в Processing.py - PullRequest
1 голос
/ 09 мая 2020

Мне нужно анимировать движение некоторых связей в processing. Я использую processing.py

Я пробовал игрушечный пример, в котором я перемещаю линейный сегмент по экрану. Моя идея заключалась в следующем: 1) нарисовать линию 2) задержку на секунду 3) стереть экран 4) изменить расположение строки 5) повторить.

Но мой код не работает. Он увеличивается, но в конечном итоге показывает только последнее положение линии. Я никогда не вижу промежуточных ступенчатых линий.

import math

def setup():
    size(800, 500)
    noLoop()

def draw():

    line(100,100,200,200)
    delay(100)

    x1,y1,x2,y2 = (100,100,200,200)

    for chunk in range(10,100,10):
        print(chunk)
        background(255)
        line(x1,y1,x2,y2)
        delay(1000)
        x2 += chunk

enter image description here

1 Ответ

1 голос
/ 09 мая 2020

Прочтите документацию draw():

[...] Все программы обработки обновляют экран в конце draw(), никогда раньше.

В процессе обработки draw() выполняется постоянно, поэтому вам не нужно al oop. Увеличивайте x2 в draw и управляйте частотой кадров в секунду на frameRate

x1,y1,x2,y2 = (100,100,200,200)
chunk = 10

def setup():
    size(800, 500)
    frameRate(10)

def draw():
    global x2

    background(255)
    line(x1,y1,x2,y2)
    x2 += chunk
...