pythagoreantree/src/PythagorasTriangle.java
2015-02-11 10:44:22 +01:00

80 lines
2.1 KiB
Java

/**
* Class PythagorasTriangle
* @author Jan Christian Grünhage
*/
public class PythagorasTriangle {
private double leftSizeFactor;
private double leftAngle;
private double rightSizeFactor;
private double rightAngle;
public PythagorasTriangle(PythagorasTree.PythagorasTreeVariant variant, int momentaryDepth, Numbers numbers, Double angle) {
switch (variant) {
case SymetricPythagorasTree:
leftAngle = 45;
break;
case AsymetricPythagorasTree:
if (angle < 0 || angle > 90) return;
leftAngle = angle;
break;
case RegularRandomPythagorasTree:
leftAngle = numbers.getRegularRandom(momentaryDepth) * 50 + 20;
break;
case PisanoPythagorasTreeOne:
leftAngle = (numbers.calcFibonacci(momentaryDepth) % 4) * 10 + 30;
break;
case PisanoPythagorasTreeTwo:
leftAngle = (numbers.calcFibonacci(momentaryDepth) % 2) * 30 + 30;
break;
case PisanoPythagorasTreeThree:
leftAngle = (numbers.calcFibonacci(momentaryDepth) % 7) * 5 + 30;
break;
case PisanoPythagorasTreeFour:
leftAngle = (numbers.calcFibonacci(momentaryDepth) % 31) + 30;
break;
case PisanoPythagorasTreeFive:
leftAngle = (numbers.calcFibonacci(momentaryDepth) % 9) * 4 + 29;
break;
default:
leftAngle = 45;
break;
}
rightAngle = (double) 90 - leftAngle;
leftSizeFactor = Math.sin(Math.toRadians(leftAngle));
rightSizeFactor = Math.sin(Math.toRadians(rightAngle));
}
public double getLeftSizeFactor() {
return leftSizeFactor;
}
public double getLeftAngle() {
return leftAngle;
}
public double getRightSizeFactor() {
return rightSizeFactor;
}
public double getRightAngle() {
return rightAngle;
}
}