Initial commit

This commit is contained in:
AlexBa16
2024-11-19 08:47:16 +01:00
commit 5c6877fe23
43 changed files with 57679 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
package UE08_051124_Rekursion;
import javafx.application.Application;
import javafx.geometry.Point2D;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class Sierpinski_Dreieck extends Application {
static final int canvasWidth = 580;
static final int canvasHeight = 502;
static final int minSize = 10;
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Sierpinski-Dreieck");
Canvas canvas = new Canvas(canvasWidth, canvasHeight);
primaryStage.setResizable(false);
primaryStage.setScene(new Scene(new BorderPane(canvas)));
primaryStage.show();
Point2D p1 = new Point2D(0, canvas.getHeight()), p2 = new Point2D(canvas.getWidth(), canvas.getHeight()), p3 = new Point2D(canvas.getWidth() / 2, 0);
drawSierpinskiTriangle(canvas.getGraphicsContext2D(), minSize, p1, p2, p3);
}
private void drawSierpinskiTriangle(GraphicsContext gc, int size, Point2D p1, Point2D p2, Point2D p3) {
if (p2.getX() - p1.getX() <= size) return;
gc.strokeLine(p1.getX(), p1.getY(), p2.getX(), p2.getY());
gc.strokeLine(p2.getX(), p2.getY(), p3.getX(), p3.getY());
gc.strokeLine(p1.getX(), p1.getY(), p3.getX(), p3.getY());
drawSierpinskiTriangle(gc, size, p1, p1.midpoint(p2), p1.midpoint(p3));
drawSierpinskiTriangle(gc, size, p1.midpoint(p2), p2, p2.midpoint(p3));
drawSierpinskiTriangle(gc, size, p1.midpoint(p3), p2.midpoint(p3), p3);
}
}