Hallo,
ich habe folgenden Code, der ein Sierpinski-Dreieck erstellt:
Ich möchte nun irgendwie das Programm so erweitern, dass der Nutzer die Eckpunkte des Dreiecks, die zu den Eckpunkten des Dreiecks gehörende Farben und Anzahl der Iterationen eingeben kann. Das Programm bricht auf Wunsch des Nutzers ab.
Leider weiß ich nicht wo ich da weiter machen soll?
Hat jemand eine Idee wie ich den Code entsprechend abändern kann?
ich habe folgenden Code, der ein Sierpinski-Dreieck erstellt:
Java:
public class Main extends Application {
Line l1,l2,l3;
Point2D p1,p2,p3;
AnchorPane root;
@Override
public void start(Stage primaryStage) {
root = new AnchorPane();
Scene scene = new Scene(root, 300, 250);
p1=new Point2D((scene.getWidth()-10)/2,10);
p2=new Point2D(10,scene.getHeight()-10);
p3=new Point2D((scene.getWidth()-10)-10,scene.getHeight()-10);
run(3,p1,p2,p3);
primaryStage.setTitle("Sierpinski");
primaryStage.setScene(scene);
primaryStage.show();
}
public void run(int order,Point2D p1,Point2D p2,Point2D p3){
if(order==0){
l1=new Line(p1.getX(),p1.getY(),p2.getX(),p2.getY());
l2=new Line(p1.getX(),p1.getY(),p3.getX(),p3.getY());
l3=new Line(p2.getX(),p2.getY(),p3.getX(),p3.getY());
root.getChildren().addAll(l1,l2,l3);
}else{
Point2D p12=midpoint(p1,p2);
Point2D p23=midpoint(p2,p3);
Point2D p31=midpoint(p3,p1);
l1=new Line(p1.getX(),p1.getY(),p2.getX(),p2.getY());
l2=new Line(p1.getX(),p1.getY(),p3.getX(),p3.getY());
l3=new Line(p2.getX(),p2.getY(),p3.getX(),p3.getY());
root.getChildren().addAll(l1,l2,l3);
run(order-1,p1,p12,p31);
run(order-1,p12,p2,p23);
run(order-1,p31,p23,p3);
}
}
public Point2D midpoint(Point2D pp1, Point2D pp2) {
return new Point2D((pp1.getX() + pp2.getX()) / 2, (pp1.getY() + pp2.getY()) / 2);
}
Ich möchte nun irgendwie das Programm so erweitern, dass der Nutzer die Eckpunkte des Dreiecks, die zu den Eckpunkten des Dreiecks gehörende Farben und Anzahl der Iterationen eingeben kann. Das Programm bricht auf Wunsch des Nutzers ab.
Leider weiß ich nicht wo ich da weiter machen soll?
Hat jemand eine Idee wie ich den Code entsprechend abändern kann?