Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a program that lets the user to enter the order and displays the filled Si

ID: 3915117 • Letter: W

Question

Write a program that lets the user to enter the order and displays the filled Sierpinski

triangles as shown in figures below. A Sierpinski triangle is created as follows:

1. Begin with an equilateral triangle, which is considered to be a Sierpinski fractal of

order (or level) 0, as shown in Figure 0.

2. Connect the midpoints of the sides of the triangle of order 0 to create a Sierpinski

triangle of order 1 (in Figure 1).

3. Leave the center triangle intact. Connect the midpoints of the sides of the three other

triangles to create a Sierpinski triangle of order 2 (Figure 2).

4. Repeat the same process recursively to create a Sierpinski triangle of order 3, 4, ...,

and so on (Figure 3).

erpinskiTrian.. SierpinskiTrian.. Enter an order ? Enter an order Figure 0 Figure 1 SierpinskiTrian.. SierpinskiTrian.. Enter an order Enter an order Figure 2 Figure 3

Explanation / Answer

import javafx.application.Application;
import javafx.geometry.*;
import javafx.scene.*;
import javafx.stage.Stage;
public class Sierpinski extends Application {
public void start(Stage firstStage) {
TrianglePane ts= new TrianglePane();//ts here stands for traingle shape
TextField tOrder = new TextField();
tOrder.setOnAction(e -> ts.setOrder(Integer.parseInt(tOrder.getText())));
tOrder.setPrefColumnCount(4);
tOrder.setAlignment(Pos.BOTTOM_RIGHT);

HBox newHBox = new HBox(10); // this section contains txtfield lable ,buttons
newHBox.getChildren().addAll(new Label("Enter an order: "),tOrder);
newHBox.setAlignment(Pos.CENTER);
BorderPane newBorderPane = new BorderPane();
newBorderPane.setCenter(ts);
newBorderPane.setBottom(newHBox);
Scene newScene = new Scene(newBorderPane, 300, 310);
firstStage.setTitle("Sierpinski Triangle Pane");
firstStage.setScene(newScene);
firstStage.show()
newScene.widthProperty().addListener(ov -> ts.paint());
newScene.heightProperty().addListener(ov -> ts.paint());
}

static class TrianglePane extends Pane {
private int order = 0;

public void setOrder(int order) {
this.order = order;
paint();
}

protected void paint() {
Point2D p1 = new Point2D(getWidth()/2, 10);
Point2D p2 = new Point2D(10, getHeight()-10);
Point2D p3 = new Point2D(getWidth()-10, getHeight()-10);
this.getChildren().clear();
triangleDisplay(order, p1, p2, p3);
}
private void triangleDisplay(int order, Point2D p1, Point2D p2, Point2D p3) {
if (order == 0) {
  
Polygon triangle = new Polygon();//for drwaing triangle
triangle.getPoints().addAll(p1.getX(), p1.getY(), p2.getX(), p2.getY(), p3.getX(), p3.getY());
triangle.setStroke(Color.BLACK);
triangle.setFill(Color.BLACK);

this.getChildren().add(triangle);
}
else {
Point2D p12= p1.midpoint(p2);
Point2D p23= p2.midpoint(p3);
Point2D p31= p3.midpoint(p1);

triangleDisplay(order-1,p1, p12, p31);//displaying triangle recursively
triangleDisplay(order-1,p12, p2, p23);
triangleDisplay(order-1,p31, p23, p3);
}
}
}
}

ThanksFor sharring Knowledge give a thumbs up if you like my work , else point out your doubt with the comment :)

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote