вернуть значение самого себя после normalize () в p5py (реализация p5js на python) - PullRequest
0 голосов
/ 10 января 2019

Я оцениваю p5py как инструмент обучения. Я беру этот курс, чтобы сделать его веселее. (https://www.kadenze.com/courses/the-nature-of-code-ii/sessions/introduction-overview)

Я застрял в этом примере на некоторое время, потому что, к моему удивлению, мне не разрешили связать эту операцию:

self.acc = (mouse - self.pos).normalize()

вместо этого я должен сделать это:

self.acc = mouse - self.pos
self.acc.normalize()  # this is okay

Соблазнительно представить отчет об ошибке, но потом, прочитав документацию по p5js, я знаю, что normalize () работает в p5js.

Что вы думаете об этом? Должен ли я попытаться убедить автора позволить мне связать операции так же, как вы ожидаете в Python? enter image description here

Ссылка: https://github.com/p5py/p5/blob/master/p5/pmath/vector.py

from p5 import *


# Vector algebra
# https://p5.readthedocs.io/en/latest/tutorials/vector.html?highlight=mouse_x#vectors-more-algebra

w = None


class Walker:
    def __init__(self):
        self.pos = Vector(width/2, height/2)
        self.vel = Vector(0, 0)
        self.acc = Vector(0, 0)

    def display(self):
        fill(255)
        ellipse(self.pos, 48, 48)

    def update(self):
        mouse = Vector(mouse_x, mouse_y)
        self.acc = (mouse - self.pos).normalize()  # this is not okay
        # self.acc = mouse - self.pos
        # self.acc.normalize()  # this is okay
        self.vel += self.acc
        self.pos += self.vel


def setup():
    global w
    size(640, 360)
    background(51)

    w = Walker()


def draw():
    w.update()
    w.display()


if __name__ == '__main__':
    run(frame_rate=30)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...