diff --git a/.idea/libraries/commons_math3_3_2.xml b/.idea/libraries/commons_math3_3_2.xml index 5a8e896..5d6df6d 100644 --- a/.idea/libraries/commons_math3_3_2.xml +++ b/.idea/libraries/commons_math3_3_2.xml @@ -1,7 +1,7 @@ - + diff --git a/.idea/libraries/controlP5.xml b/.idea/libraries/controlP5.xml new file mode 100644 index 0000000..63f8efc --- /dev/null +++ b/.idea/libraries/controlP5.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/core.xml b/.idea/libraries/core.xml new file mode 100644 index 0000000..4011244 --- /dev/null +++ b/.idea/libraries/core.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/BiomorphGenerate/BiomorphGenerate.iml b/BiomorphGenerate/BiomorphGenerate.iml index e398729..f25937c 100644 --- a/BiomorphGenerate/BiomorphGenerate.iml +++ b/BiomorphGenerate/BiomorphGenerate.iml @@ -5,10 +5,9 @@ - + - - + \ No newline at end of file diff --git a/BiomorphGenerate/src/BiomorphGenerate/BiomorphGenerate.java b/BiomorphGenerate/src/BiomorphGenerate/BiomorphGenerate.java index 058e47f..9896616 100644 --- a/BiomorphGenerate/src/BiomorphGenerate/BiomorphGenerate.java +++ b/BiomorphGenerate/src/BiomorphGenerate/BiomorphGenerate.java @@ -27,15 +27,54 @@ public BiomorphGenerate() { } + // + public BiomorphGenerate WithPointA(MyPoint pointA) + { + point_a = pointA; + return this; + } + + public BiomorphGenerate WithPointB(MyPoint pointB) + { + point_b = pointB; + return this; + } + + public BiomorphGenerate WithSize(int size) + { + this.size = size; + return this; + } + + public BiomorphGenerate WithIterations(int iterations) + { + this.iterations = iterations; + return this; + } + + public BiomorphGenerate WithThershold(double threshold) + { + this.threshold = threshold; + return this; + } + + public BiomorphGenerate WithMethod(Iterate method) + { + this.method = method; + return this; + } + + // + public void Default() { point_a = new MyPoint(-2.0, 2.0); point_b = new MyPoint(2.0, -2.0); - size = 2000; + size = 700; iterations = 30; - threshold = 10.0; + threshold = 100.0; method = new Iterate(); - method.setEquationPolynomial(null,2.0,-1.5,8.5,9.5); + method.setEquationPolynomial(new Complex(0,0),1.0,0.0,1.0,0.0); method.setIterationPicard(0.5); } @@ -46,12 +85,15 @@ private boolean MagnitudeCheck(Complex x, int method) case 1: if (FastMath.abs(x.getReal())+FastMath.abs(x.getImaginary())>threshold) return true; + break; case 2: if (x.abs() > threshold) return true; + break; case 3: if (FastMath.sqrt(FastMath.pow(x.getReal(),2)+FastMath.pow(x.getImaginary(),2))>threshold) return true; + break; } return false; } @@ -98,7 +140,7 @@ private boolean MagnitudeCheck(Complex x, int method) if (x.abs() > threshold) return true; case 3: - if (FastMath.sqrt(FastMath.pow(x.getReal(),2)+FastMath.pow(x.getImaginary(),2))>threshold) + if (FastMath.sqrt(FastMath.pow(x.getReal(), 2) + FastMath.pow(x.getImaginary(), 2))>threshold) return true; } return false; @@ -142,19 +184,19 @@ private void generate_single() for (int j = 0; j - + - - + \ No newline at end of file diff --git a/ConsoleOverlay/src/ConsoleOverlay.java b/ConsoleOverlay/src/ConsoleOverlay.java index 164e825..b8f562a 100644 --- a/ConsoleOverlay/src/ConsoleOverlay.java +++ b/ConsoleOverlay/src/ConsoleOverlay.java @@ -38,15 +38,15 @@ public static void main(String args[]) System.out.println(bm.GetGridString()); // System.out.println(bm.toString()); - /* long time = System.nanoTime(); + long time = System.nanoTime(); BiomorphGenerate bg = new BiomorphGenerate(); bg.Default(); - bm = bg.GetBiomorph(true); + /* bm = bg.GetBiomorph(true); System.out.println("Generated multicore: "+((System.nanoTime() - time)/1000000)); bm.GetGridString(); System.out.println(); time = (System.nanoTime() - time)/1000000; - System.out.println("Miliseconds elapsed: "+time); + System.out.println("Miliseconds elapsed: "+time);*/ System.out.println(); @@ -55,9 +55,9 @@ public static void main(String args[]) bg.Default(); bm = bg.GetBiomorph(false); System.out.println("Generated singlecore: "+((System.nanoTime() - time)/1000000)); - bm.GetGridString(); + // System.out.println( bm.GetGridString()); System.out.println(); time = (System.nanoTime() - time)/1000000; - System.out.println("Miliseconds elapsed: "+time);*/ + System.out.println("Miliseconds elapsed: "+time); } } diff --git a/Equations/Equations.iml b/Equations/Equations.iml index 70df6ee..9546a71 100644 --- a/Equations/Equations.iml +++ b/Equations/Equations.iml @@ -5,9 +5,8 @@ - + - - + \ No newline at end of file diff --git a/Equations/src/Equations/EquationBuilder.java b/Equations/src/Equations/EquationBuilder.java index 7d7dd5e..daace9c 100644 --- a/Equations/src/Equations/EquationBuilder.java +++ b/Equations/src/Equations/EquationBuilder.java @@ -33,6 +33,7 @@ public EquationBuilder(EquationBuilder equation) public void ChangeInput(Complex input) { CloseAll(); + this.input = input; left.get(0).SetBaseInput(input); } @@ -59,7 +60,13 @@ public String GetJoins() public Complex GetValue() { CloseAll(); - return left.get(0).GetValue(); + Complex tmp; //= left.get(0).GetValue(); + tmp = input.pow(3.0);//input.pow(2.0).multiply(1.0).add(input.pow(0.0).multiply(0.0)); + if (tmp.isNaN()) + { + tmp = new Complex(0.0,0.0); + } + return tmp; } public String GetEquationString() @@ -167,11 +174,11 @@ public void Devide(Complex param, boolean base) public void PredefinedPolinomialSimple(double a, double b, double m, double n) { Power(new Complex(m, 0.0)); - Multiply(new Complex(a, 0.0), false); + //Multiply(new Complex(a, 0.0), false); Close(); - Add(input, true); - Power(new Complex(n, 0.0)); - Multiply(new Complex(b, 0.0), false); + //Add(input, true); + //Power(new Complex(n, 0.0)); + //Multiply(new Complex(b, 0.0), false); CloseAll(); } } diff --git a/Iterations/Iterations.iml b/Iterations/Iterations.iml index bc439ea..c0e9b7c 100644 --- a/Iterations/Iterations.iml +++ b/Iterations/Iterations.iml @@ -5,10 +5,9 @@ - + - - + \ No newline at end of file diff --git a/Iterations/src/Iterations/Iterate.java b/Iterations/src/Iterations/Iterate.java index 48f6636..9ecd483 100644 --- a/Iterations/src/Iterations/Iterate.java +++ b/Iterations/src/Iterations/Iterate.java @@ -1,12 +1,14 @@ package Iterations; import Equations.Equation; +import Equations.EquationBuilder; import org.apache.commons.math3.complex.Complex; /** * Created by harold on 29.04.14. */ public class Iterate { private Equation equation; + private EquationBuilder eqBuilder; private Iteration iteration; private boolean equation_set = false; private boolean iteration_set = false; @@ -59,6 +61,8 @@ public void setInput(Complex input) public void setEquationPolynomial(Complex input, double ex, double fx, double xpa, double xpb) { equation = new Equations.Polynomial(input, ex, fx, xpa, xpb); + eqBuilder = new EquationBuilder(input); + eqBuilder.PredefinedPolinomialSimple(ex, fx, xpa, xpb); equation_set = true; } @@ -72,7 +76,8 @@ public void setIterationPicard(double u) { if (equation_set) { - iteration = new Picard(equation,u); + // iteration = new Picard(equation,u); + iteration = new Picard(eqBuilder,u); iteration_set = true; } // else parent.println("Error: In Iterations.Iterate - can't set iteration because the equation is not set"); diff --git a/Iterations/src/Iterations/Iteration.java b/Iterations/src/Iterations/Iteration.java index 0eb5e16..108a08c 100644 --- a/Iterations/src/Iterations/Iteration.java +++ b/Iterations/src/Iterations/Iteration.java @@ -1,6 +1,7 @@ package Iterations; import Equations.Equation; +import Equations.EquationBuilder; import org.apache.commons.math3.complex.Complex; /** @@ -10,21 +11,29 @@ abstract public class Iteration { //private Complex input; protected Equation equation; + protected EquationBuilder eqBuilder; public Iteration(Equation equation) { //this.input = input; this.equation = equation; } + public Iteration(EquationBuilder equationBuilder) + { + //this.input = input; + this.eqBuilder = new EquationBuilder(equationBuilder); + } public Complex getInput() { - return equation.getInput(); + //return equation.getInput(); + return eqBuilder.input; } public void setInput(Complex input) { - equation.setInput(input); + // equation.setInput(input); + eqBuilder.ChangeInput(input); } abstract public Complex Calculate(boolean withUpdate); diff --git a/Iterations/src/Iterations/Picard.java b/Iterations/src/Iterations/Picard.java index 69711da..ae707ed 100644 --- a/Iterations/src/Iterations/Picard.java +++ b/Iterations/src/Iterations/Picard.java @@ -2,6 +2,7 @@ import Equations.Equation; +import Equations.EquationBuilder; import org.apache.commons.math3.complex.Complex; /** @@ -16,14 +17,22 @@ public Picard(Equation equation, double u) super(equation); this.u = u; } + public Picard(EquationBuilder equationBuilder, double u) + { + super(equationBuilder); + this.u = u; + } @Override public Complex Calculate(boolean withUpdate) { - Complex tmp = equation.Calculate().add(u); + + //Complex tmp = equation.Calculate().add(u); + Complex tmp = eqBuilder.GetValue().add(u); if (withUpdate) { - equation.setInput(tmp); + //equation.setInput(tmp); + eqBuilder.ChangeInput(tmp); } return tmp; } diff --git a/ProcessingIOverlay/src/ProcessingOverlay.java b/ProcessingIOverlay/src/ProcessingOverlay.java new file mode 100644 index 0000000..77f0578 --- /dev/null +++ b/ProcessingIOverlay/src/ProcessingOverlay.java @@ -0,0 +1,41 @@ +import BiomorphGenerate.BiomorphGenerate; +import Components.Drawer; +import processing.core.PApplet; +import controlP5.*; +import processing.core.PShape; +/** + * Created by harold on 20.05.14. + */ +public class ProcessingOverlay extends PApplet +{ + private Drawer d; + private boolean initiated = false; + + static public void main(String args[]) + { + PApplet.main(new String[] {"ProcessingOverlay"}); + } + + + public void setup() + { + size(730,700); + + BiomorphGenerate bg = new BiomorphGenerate(); + + + d = new Drawer(); + d.GenerateTest(); + + d.MakeGrid(); + d.GenerateImage(1, 1, new int[]{0,30}); + initiated = true; + } + + public void draw() + { + + background(color(0, 0, 0, 255)); + if (initiated) image(d.GetImage(), 0,0); + } +}