/** * 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; } }