p5 js 'строка не является функцией' - PullRequest
1 голос
/ 14 апреля 2020

Я пытаюсь использовать p5 js, чтобы взять группу точек и l oop через них, чтобы нарисовать линии. Моя проблема в том, что по какой-то причине я продолжаю получать сообщение об ошибке «строка не является функцией». Почему?

function setup() {
    createCanvas(400, 400);
    background(255)

}

function draw() {
    strokeWeight(50);
    drawLetter(letterA);
}

const letterA = {
    lines: [
        { x1: 10, y1: 20, x2: 40, y2: 50 },
        { x1: 90, y1: 60, x2: 60, y2: 100 },
        { x1: 200, y1: 20, x2: 30, y2: 45 }
    ]
}

function drawLetter(letter) {

    for (let i = 0; i < letter.lines.length; i++) {
        const line = letter.lines[i];
        const { x1, y1, x2, y2 } = line;

        line(x1, y1, x2, y2);

    }
}

1 Ответ

1 голос
/ 14 апреля 2020

line не является функцией, потому что вы назвали локальную переменную "line". Эта локальная переменная покрывает функцию "line". Переименуйте переменную (например, coordinates):

function drawLetter(letter) {

    for (let i = 0; i < letter.lines.length; i++) {
        const coordinates = letter.lines[i];
        const { x1, y1, x2, y2 } = coordinates;

        line(x1, y1, x2, y2);

    }
}

Или полностью пропустите локальную переменную:

function drawLetter(letter) {

    for (let i = 0; i < letter.lines.length; i++) {
        const { x1, y1, x2, y2 } = letter.lines[i];

        line(x1, y1, x2, y2);

    }
}
...