Я пытаюсь написать код, который имитирует то, что происходит в this video в холсте HTML.Перемещение объекта по пути с использованием p5.js
Мой код отличается тем, что каждый раз, когда страница загружается или обновляется, радиусы двух окружностей генерируются случайным образом. Мне нужно, чтобы «планеты» двигались с одинаковой скоростью вдоль окружностей их соответствующих кругов.
Я использую p5.js для рисования на холсте. Есть ли что-то в p5.js, которое рисует объект по пути, в моем случае - путь, который представляет собой круг?
Я просмотрел ссылки и наткнулся на векторы, но я не совсем понимаю, что они делают.
Мой код до сих пор:
var w = window.innerWidth;
var h = window.innerHeight;
var r1, r1;
var d;
var x1, x2, y1, y2;
var angle = Math.PI/4;
function setup() {
// canvas setup
createCanvas(w, h);
background(255);
angleMode(RADIANS);
// randomly generated radiuses
r1 = Math.floor(Math.random() * (h/2-300)) + 300;
r2 = Math.floor(Math.random() * (200-100)) + 100;
// drawing the two ellipses
ellipseMode(CENTER);
noFill();
ellipse(w/2, h/2, r1*2, r1*2);
ellipse(w/2, h/2, r2*2, r2*2);
}
function draw() {
// points on the circles
x1 = (r1 * (Math.cos(angle))) + (w/2);
y1 = (h/2) - (r1 * (Math.sin(angle)));
x2 = (r2 * (Math.cos(angle))) + (w/2);
y2 = (h/2) - (r2 * (Math.sin(angle)));
// drawing two circles at those points
ellipseMode(CENTER);
noStroke();
fill('rgb(140, 140, 140)');
ellipse(x1, y1, 20, 20);
ellipse(x2, y2, 20, 20);
// randomly generated color for the line
var r = random(0, 255);
var g = random(0, 255);
var b = random(0, 255);
stroke(r, g, b);
strokeWeight(1);
// drawing the line that connects the two points
line(x1, y1, x2, y2);
// animation????
angle = angle + (10 * (Math.PI/180));
}
Проблема с последней строки в том, что она создает evenly spaces lines, а не шаблон, который создается в видео.
Есть ли способ для вас, чтобы включить скриншот видео, которое вы пытаетесь имитировать? Многие люди не захотят посетить facebook. –