Viele weitere Beispielprojekt für verschiedene Anwendungen

This commit is contained in:
ngb
2022-06-19 22:26:01 +02:00
parent dc6b7ee351
commit a2d883305a
97 changed files with 2535 additions and 61 deletions

View File

@@ -0,0 +1,77 @@
import schule.ngb.zm.Vector;
import schule.ngb.zm.Zeichenmaschine;
public class BouncingLine extends Zeichenmaschine {
public static void main( String[] args ) {
new BouncingLine();
}
private Vector start, end, dStart, dEnd;
private int r, g, b;
private boolean mouseFollow = false;
public BouncingLine() {
super(800, 800, "Bouncing Lines");
}
@Override
public void setup() {
start = Vector.random(0, width, 0, height);
end = Vector.random(0, width, 0, height);
dStart = Vector.random(-5, 5);
dEnd = Vector.random(-5, 5);
r = random(255);
g = random(255);
b = random(255);
}
@Override
public void update( double delta ) {
start.add(dStart);
end.add(dEnd);
if( start.x > width || start.x < 0 ) {
dStart.x *= -1;
}
if( end.x > width || end.x < 0 ) {
dEnd.x *= -1;
}
if( start.y > width || start.y < 0 ) {
dStart.y *= -1;
}
if( end.y > width || end.y < 0 ) {
dEnd.y *= -1;
}
r += limit(random(-5, 5), 0, 255);
g += limit(random(-5, 5), 0, 255);
b += limit(random(-5, 5), 0, 255);
}
@Override
public void draw() {
drawing.setStrokeColor(r, g, b);
drawing.line(start.x, start.y, end.x, end.y);
// bezier(0, 0, startX, startY, endX, endY, width, height);
}
@Override
public void mouseClicked() {
mouseFollow = !mouseFollow;
}
@Override
public void mouseMoved() {
if( mouseFollow ) {
dStart = new Vector(mouseX - start.x, mouseY - start.y);
dStart.setLength(5);
dEnd = new Vector(mouseX - end.x, mouseY - end.y);
dEnd.setLength(5);
}
}
}