2017-01-03 9 views
1

Я делаю несколько простых экспериментов с библиотекой обработки и хотел бы перенести один из этих эскизов на P5.js, чтобы он мог быть помещен в Интернет. Ниже приведен код в обработке (Java):переход от обработки к p5.js

float t; 

void setup() { 
    background(20); 
    size(500, 500); 
} 

void draw(){ 
    stroke(random(0,255), random(0,255), random(0,255)); 

    translate(width/2, height/2); 
    rotate(radians(45)); 
    line(x(t), y(t), y(t), x(t)); 
    println(x(t)); 
    println(y(t)); 
    t++; 


} 

float x(float t) { 
    return cos(t/10) * 200; 
} 

float y(float t) { 
    return sin(t/100) * 200; 
} 

Я печатает значения х (т) и у (т) для справки, и они появляются отлично в консоли обработки. Я попытался переписать, чтобы быть принятым P5.js (JavaScript):

var t; 

function setup() { 
    background(20); 
    createCanvas(500, 500); 
} 

function draw(){ 
    stroke(random(0,255), random(0,255), random(0,255)); 

    translate(width/2, height/2); 
    rotate(radians(45)); 
    line(x(t), y(t), y(t), x(t)); 
    print(x(t)); 
    print(y(t)); 
    t++; 
} 

function x(t) { 
    return cos(t/10) * 200; 
} 

function y(t) { 
    return sin(t/100) * 200; 
} 

Когда я запускаю это в среде разработки P5.js, консоль возвращает нуль для каждого значения, и ничего не рисуется на экране. Надеюсь, кто-то может помочь, спасибо!

ответ

3

В обработке (которая построена на Java) переменная t получает значение по умолчанию float значение 0.0.

В P5.js (который построен на JavaScript), ваша переменная t получает значение по умолчанию undefined. Затем вы пытаетесь использовать это значение для других операций, поэтому никто из них не работает так, как вы ожидаете.

Простое решение проблемы заключается в том, чтобы вручную установить значение по умолчанию на 0.

+0

Извинения я не могу поверить, что это было что-то так просто! Спасибо – Arkadelic

0

Попробуйте сказать: var t = 0; наверху вместо: var t;