Работая в обработке, я пытаюсь создать свой первый генеративный патч. То, что я хочу, это начать рисовать круг где-то на экране (точка, следующая по пути круга), но после случайного промежутка времени кружок ломается, линия идет в случайном направлении в течение случайного промежутка времени , и начинает рисовать новый круг в другом месте.Как я могу справиться с рисованием круга, с разрывом этого круга и начать рисовать в другом месте?
Прямо сейчас у меня есть кружок, и у меня есть механизм переключения, который включается и выключается после случайного периода времени. Я не могу понять, как заставить его «ломаться» от этого оригинального круга, не говоря уже о том, чтобы он начал новый круг в другом месте. Кто-нибудь будет советоваться о том, как это сделать? Я думаю, что это может иметь интересный визуальный эффект.
Rotor r;
float timer = 0;
boolean freeze = false;
void setup() {
size(1000,600);
smooth();
noFill();
frameRate(60);
background(255);
timeLimit();
r = new Rotor(random(width),random(height),random(40,100));
}
void draw() {
float t = frameCount/100.0;
timer = timer + frameRate/1000;
r.drawRotor(t);
if(timer > timeLimit()){
timer = 0;
timeLimit();
if(freeze == true){
freeze = false;
}else{
freeze = true;
}
background(255);
}
}
float timeLimit(){
float timeLimit = random(200);
return timeLimit;
}
ротора Класс:
class Rotor {
color c;
int thickness;
float xPoint;
float yPoint;
float radius;
float angle = 0;
float centerX;
float centerY;
Rotor(float cX, float cY, float rad) {
c = color(0);
thickness = 1;
centerX = cX;
centerY = cY;
radius = rad;
}
void drawRotor(float t) {
stroke(c);
strokeWeight(thickness);
angle = angle + frameRate/1000;
xPoint = centerX + cos(angle) * radius;
yPoint = centerY + sin(angle) * radius;
ellipse(xPoint, yPoint,thickness,thickness);
}
}