Untitled
unknown
plain_text
3 years ago
8.8 kB
9
Indexable
package de.tum.in.ase;
import javafx.application.Application;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import org.checkerframework.checker.nullness.qual.NonNull;
import java.util.ArrayList;
import java.util.List;
public class TUMTriangle extends Application {
private static final Color PAINT_BLUE = Color.valueOf("#316EB2");
private static final Color PAINT_WHITE = Color.valueOf("#ffffff");
private static final Color OK_ = Color.valueOf("#f72d2d");
private @NonNull List<Triangle> triangles = new ArrayList<>();
/**
* Creates the TUM triangle recursively by adding the generated triangles to the triangles
* to the triangles attribute in the object.
* @param top The offset from the top
* @param left The offset from the left
* @param height The height of the triangle
* @param depth The recursion depth
*/
public void createTUMTriangle(double top, double left, double height, int depth) {
// TODO: Task 1: create the TUM triangle
// if (depth < 2) {
// if (depth > 0) {
// if (depth == 1) {
// Triangle blueTriangle = new Triangle(new Point(top, left), new Point(top, top + height), new Point(height, height / 2), PAINT_BLUE);
// triangles.add(blueTriangle);
// }
//
// triangles.addAll( paintWhiteTriangle(top, left,height,depth));
// }
// createTUMTriangle(top, left,height, depth + 1);
// }
int temp = depth;
Triangle blueTriangle = new Triangle(new Point(top, left), new Point(top, top + height), new Point(height* Math.sqrt(3) / 2, height / 2), PAINT_BLUE);
if (depth == 0) {
return;
}
if (depth > 0){
triangles.add(blueTriangle);
for (int x = 0; x < Math.pow(3, depth - 1); x++) {
double p1x = 0;
double p1y = (height/Math.pow(2,1));
double p2x = (Math.sqrt(3)/4)* height;
double p2y = (height/Math.pow(2,2));
double p3x = (Math.sqrt(3)/4) * height;
double p3y = (3*height/Math.pow(2,0))/4;
Point point1_1= new Point(0, (height/Math.pow(2,2)));
// Point point2_1 = new Point( (Math.sqrt(3)/4) * height/2,(height/Math.pow(2,3)));//(height/2)/4
// Point point3_1 = new Point( (Math.sqrt(3)/4) * height/2,(3*(height/Math.pow(2,1)))/4);//(3*(height/2))/4
//
Point point1= new Point(p1x, p1y);
Point point2 = new Point( p2x,p2y);
Point point3 = new Point( p3x,p3y);
//
Triangle whiteTriangle1 = new Triangle(point1,point2, point3, PAINT_WHITE);
//Triangle whiteTriangle1 = new Triangle(new Point(top, left), new Point(top, top + height), new Point(height* Math.sqrt(3) / 2, height / 2), PAINT_BLUE);
triangles.add(whiteTriangle1);
}
//createTUMTriangle(top, left, newHeight, depth - 1);
}
//if (depth == 4) {
///1
// Triangle blueTriangle = new Triangle(new Point(top, left), new Point(top, top + height), new Point(height, height / 2), PAINT_BLUE);
//
// Point point1= new Point(0, (height/Math.pow(2,1)));
// Point point2 = new Point( (Math.sqrt(3)/4) * height,(height/Math.pow(2,2)));//(height/2)/2
// Point point3 = new Point( (Math.sqrt(3)/4) * height,(3*height/Math.pow(2,0))/4);//(3*height)/4
//
// Triangle whiteTriangle1 = new Triangle(point1,point2, point3, PAINT_WHITE);
//////2
// Point point1_1= new Point(0, (height/Math.pow(2,2)));
// Point point2_1 = new Point( (Math.sqrt(3)/4) * height/2,(height/Math.pow(2,3)));//(height/2)/4
// Point point3_1 = new Point( (Math.sqrt(3)/4) * height/2,(3*(height/Math.pow(2,1)))/4);//(3*(height/2))/4
//
// Triangle whiteTriangle2 = new Triangle(point1_1,point2_1, point3_1, PAINT_WHITE);
///3
// Point point1_t= new Point(0, (height/Math.pow(2,3)));
// Point point2_t = new Point( (Math.sqrt(3)/4) * height/2/2,(height/Math.pow(2,4)));//(height/2/2)/4
// Point point3_t = new Point( (Math.sqrt(3)/4) * height/2/2,(3*(height/Math.pow(2,2)))/4);////(3*(height/2/2))/4
//
// Triangle whiteTrianglet = new Triangle(point1_t,point2_t, point3_t, PAINT_WHITE);
////2
// Point point1_2= new Point(0, (height/Math.pow(2,1))+(height/Math.pow(2,2))); //((height/2)+(height/2)/2)
// Point point2_2 = new Point( (Math.sqrt(3)/4) * (height/2),((height/2)+(height/2)/2/2));
// Point point3_2 = new Point( (Math.sqrt(3)/4) * (height/2),(height/Math.pow(2,1))+(height/Math.pow(2,2))+(height/Math.pow(2,3)));
//((height/2)+(height/2)/2)+(((height/2)/2)/2)
// Triangle whiteTriangle3 = new Triangle(point1_2,point2_2, point3_2, PAINT_WHITE);
//3
// Point point1_t2= new Point(0, (height/Math.pow(2,1))+(height/Math.pow(2,2))+(height/Math.pow(2,3))); //((height/2)+(height/2)/2)+(height/2)/2/2)
// Point point2_t2 = new Point( (Math.sqrt(3)/4) * (height/2/2),(height/2)+((height/2)/2)+ ((height/2)/2/2/2));
// Point point3_t2 = new Point( (Math.sqrt(3)/4) * (height/2/2),(height/Math.pow(2,1))+(height/Math.pow(2,2))+(height/Math.pow(2,3))+(height/Math.pow(2,4)));
//(height/2)+((height/2)/2)+(((height/2)/2)/2)+(((height/2)/2)/2/2)
// Triangle whiteTrianglet2 = new Triangle(point1_t2,point2_t2, point3_t2, PAINT_WHITE);
//2
// Point point1_3= new Point((Math.sqrt(3)/4) * height, (height/2));
// Point point2_3 = new Point( (Math.sqrt(3)/4) * height + ((Math.sqrt(3)/4) * height/2),(3*(height/2))/4);
// Point point3_3 = new Point( (Math.sqrt(3)/4) * height + ((Math.sqrt(3)/4) * height/2),((height/2)+(height/2)/2/2));
// Triangle whiteTriangle4 = new Triangle(point1_3,point2_3, point3_3, PAINT_WHITE);
///test
// Point point1_4= new Point((Math.sqrt(3)/4) * height + ((Math.sqrt(3)/4) * height/2), (height/2));
// Point point2_4 = new Point( (Math.sqrt(3)/4) * height + ((Math.sqrt(3)/4) * height/2) + ((Math.sqrt(3)/4) * height/2/2),((3*(height/2))/4)); //no point in y
// Point point3_4 = new Point( (Math.sqrt(3)/4) * height + ((Math.sqrt(3)/4) * height/2) + ((Math.sqrt(3)/4) * height/2/2),(height/2)+((height/2)/2/2/2));
//
// Triangle whiteTriangle4t = new Triangle(point1_4,point2_4, point3_4, OK_);
// triangles.add(blueTriangle);
// triangles.add(whiteTriangle1);
// triangles.add(whiteTriangle2);
// triangles.add(whiteTrianglet);
// triangles.add(whiteTriangle3);
// triangles.add(whiteTrianglet2);
// triangles.add(whiteTriangle4);
//triangles.add(whiteTriangle4t);
// triangles.addAll(paintWhiteTriangle(top, left, height, depth));
// }
// else {
// double newHeight = height / 2;
// createTUMTriangle(top, left, newHeight, depth - 1);
// createTUMTriangle(top + newHeight, left + newHeight / 2, newHeight, depth - 1);
// createTUMTriangle(top, left + newHeight, newHeight, depth - 1);
// }
}
public ArrayList<Triangle> paintWhiteTriangle(double top, double left, double height, int depth) {
// ArrayList <Triangle> whiteTriangleList = new ArrayList<>();
// for (int x = 0; x < Math.pow(3, depth - 1); x++) {
// height = height/2;
// Triangle whiteTriangle = new Triangle(new Point(top, height), new Point(height, height/2 * 3), new Point(height, height/2), PAINT_WHITE);
// whiteTriangleList.add(whiteTriangle);
// }
// return whiteTriangleList;
ArrayList<Triangle> whiteTriangleList = new ArrayList<>();
Triangle whiteTriangle = new Triangle(new Point(top, height), new Point(height, height / 2 * 3), new Point(height, height / 2), PAINT_WHITE);
whiteTriangleList.add(whiteTriangle);
return whiteTriangleList;
}
@Override
public void start(Stage stage) {
this.triangles = new ArrayList<>();
SimplePad simplePad = new SimplePad(400 * Math.sqrt(3) / 2, 400);
stage.setTitle("TUM triangle");
stage.setScene(simplePad);
stage.setResizable(true);//change false to true
stage.show();
createTUMTriangle(0, 0, 400, 2);
for (Triangle triangle : triangles) {
simplePad.drawTriangle(triangle);
}
}
}
Editor is loading...