С p5.js в первый раз я не могу рисовать постепенно снежинку Коха: когда я нажимаю, чтобы выполнить, я вижу результат рисования, когда отторжение исчезло.
, поэтому я реализовал его с помощью рабочего потока
Поскольку я не знаю, как поделиться внешним var, таким как класс или массив (потому что если сценарий create type = "module" не подходит для worker.js)
Я могу приехать, чтобы сделать это с трудом
'Снежинка Коха' сделана в рекурсивном режиме.
Проект
- index.html
- main.js
- worker.js, который содержит (onmessage = function ... и класс VonKoch)
в worker.js это похоже на
onmessage = function(e) {
console.log('Worker: Message received from main script');
let depth = e.data.depth;
let f = new VonKoch(VonKoch);
};
class VonKoch {
constructor(depth) {
...
}
pencil_advance(){
...
postMessage([this.x, this.y, this.x + dx, this.y + dy, ]);
Удивительно! он может отправлять сообщения из / в класс, который находится вне сообщения
}
...
}
Из main.js это выглядит так:
function setup() {
noLoop();
createCanvas(800, 400);
if (window.Worker) {
const myWorker = new Worker("worker.js");
let el = {profondeur:profondeur};
myWorker.postMessage(el);
let a=0;
сообщение получено, поэтому с p5. JS рисует линию
myWorker.onmessage = (e) => {
line(e.data[0],e.data[1],e.data[2],e.data[3]);
a++;
};
С этим я могу видеть ничьи постепенно.
------------------------
Хорошо, но я хочу более простой и быстрый результат с внешним массивом [] [] изпиксель, который я могу перерисовать каждый setInterval (...; redraw (), 500).
"main.js" может распознать этот массив, если он объявлен и инициализирован в "worker.js", но когда этоМассив изменен в "worker.js" (с классом VonKoch), main.js увидит исходный класс массива без изменений. Может быть, это из "new Worker (" worker.js ")?
И если я создам этот класс массива в" main.js ", он не будет распознан в" worker.js ".
Единственный способ иметь «класс массива», который распознается в «main.js», - это поместить его в «worker.js».
Спасибо за вашу помощь