annotate artifacts/src/main/java/org/dive4elements/river/jfree/JFreeUtil.java @ 7119:988dde49ae65

Fix area label rendering. Previously the showarealabel setting was neither parsed nor used to decide if the arealabel should be drawn. It is mostly off but enabled for Cross Sections. It is now also shown in the style editors in case someone got used to it ;)
author Andre Heinecke <aheinecke@intevation.de>
date Tue, 24 Sep 2013 18:13:51 +0200
parents 1b35b2ddfc28
children e4606eae8ea5
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4564
diff changeset
9 package org.dive4elements.river.jfree;
3018
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10
3765
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
11 import java.awt.Shape;
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
12 import java.awt.geom.Rectangle2D;
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
13 import java.util.Iterator;
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
14 import java.util.Random;
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
15
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
16 import org.apache.log4j.Logger;
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
17 import org.jfree.chart.entity.ChartEntity;
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
18 import org.jfree.chart.entity.EntityCollection;
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
19
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4564
diff changeset
20 import org.dive4elements.river.artifacts.math.Function;
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
21 import org.dive4elements.river.themes.ThemeDocument;
3109
63ef889eea2b SQ: Directly sample our Function objects instead of Function2D from JFreeChart.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3105
diff changeset
22
3018
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
23 public class JFreeUtil {
3772
5a8f8fd5310c The usual wipe after for ill configured Eclipses.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3765
diff changeset
24
3765
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
25 private static final Logger logger = Logger.getLogger(JFreeUtil.class);
3076
5642a83420f2 FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3023
diff changeset
26
3018
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
27 /** Do not instantiate. */
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
28 private JFreeUtil() {
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
29 }
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
30
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
31
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
32 /**
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33 * True if \param hotspot collides with a Entity in \param entities.
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
34 * @param hotspot Shape to compare against other shapes (bounds only).
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35 * @param entities entities against which to compare shape.
3023
e19ff9086035 Avoid collisions between line labels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3018
diff changeset
36 * @param exclusiveEntityClass If not null, consider only entities of
e19ff9086035 Avoid collisions between line labels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3018
diff changeset
37 * given class.
e19ff9086035 Avoid collisions between line labels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3018
diff changeset
38 * @return true if a collision (non-zero intersection) exists between
3018
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
39 * shapes.
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
40 */
3023
e19ff9086035 Avoid collisions between line labels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3018
diff changeset
41 public static boolean collides(Shape hotspot, EntityCollection entities,
e19ff9086035 Avoid collisions between line labels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3018
diff changeset
42 Class exclusiveEntityClass) {
3018
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
43 if (entities == null) return false;
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
44
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
45 Rectangle2D hotspotBox = hotspot.getBounds2D();
3076
5642a83420f2 FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3023
diff changeset
46
3018
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
47 for (Iterator i = entities.iterator(); i.hasNext(); ) {
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48 Object next = i.next();
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
49 ChartEntity entity = (ChartEntity) next;
3023
e19ff9086035 Avoid collisions between line labels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3018
diff changeset
50 if (exclusiveEntityClass == null
e19ff9086035 Avoid collisions between line labels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3018
diff changeset
51 || exclusiveEntityClass.isInstance(entity))
e19ff9086035 Avoid collisions between line labels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3018
diff changeset
52 {
e19ff9086035 Avoid collisions between line labels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3018
diff changeset
53 if (entity.getArea().intersects(hotspotBox)) {
e19ff9086035 Avoid collisions between line labels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3018
diff changeset
54 // Found collision, early stop.
e19ff9086035 Avoid collisions between line labels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3018
diff changeset
55 return true;
e19ff9086035 Avoid collisions between line labels.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3018
diff changeset
56 }
3018
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
57 }
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
58 }
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
59
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
60 return false;
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61 }
3772
5a8f8fd5310c The usual wipe after for ill configured Eclipses.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3765
diff changeset
62
5a8f8fd5310c The usual wipe after for ill configured Eclipses.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3765
diff changeset
63
3765
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
64 /**
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
65 * This function samples a randomized line that contains of x and y values
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
66 * between <i>startX</i>, <i>endX</i>, <i>startY</i> and <i>endY</i>. The
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
67 * number of points in the line is specified by <i>num</i>.
3772
5a8f8fd5310c The usual wipe after for ill configured Eclipses.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3765
diff changeset
68 *
3765
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
69 * @param num The number of points in the line.
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
70 * @param startX The min value of the x values.
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
71 * @param endX The max value of the x values.
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
72 * @param startY The min value of the y values.
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
73 * @param endY The max value of the y values.
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
74 * @return an array with [allX-values, allY-values].
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
75 * @throws IllegalArgumentException
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
76 */
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
77 public static double[][] randomizeLine(
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
78 int num,
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
79 double startX,
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
80 double endX,
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
81 double startY,
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
82 double endY
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
83 ) throws IllegalArgumentException
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
84 {
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
85 if (num <= 0) {
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
86 throw new IllegalArgumentException("Parameter 'num' has to be > 0");
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
87 }
3772
5a8f8fd5310c The usual wipe after for ill configured Eclipses.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3765
diff changeset
88
3765
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
89 Random random = new Random();
3772
5a8f8fd5310c The usual wipe after for ill configured Eclipses.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3765
diff changeset
90
3765
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
91 double[] x = new double[num];
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
92 double[] y = new double[num];
3772
5a8f8fd5310c The usual wipe after for ill configured Eclipses.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3765
diff changeset
93
3765
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
94 for (int i = 0; i < num; i++) {
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
95 double xFac = random.nextDouble();
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
96 double yFac = random.nextDouble();
3772
5a8f8fd5310c The usual wipe after for ill configured Eclipses.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3765
diff changeset
97
3765
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
98 x[i] = startX + xFac * (endX - startX);
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
99 y[i] = startY + yFac * (endY - startY);
3772
5a8f8fd5310c The usual wipe after for ill configured Eclipses.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3765
diff changeset
100
3765
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
101 logger.debug("Created new point: " + x[i] + "|" + y[i]);
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
102 }
3772
5a8f8fd5310c The usual wipe after for ill configured Eclipses.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3765
diff changeset
103
3765
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
104 return new double[][] { x, y };
d8f2ab5b61c3 Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3109
diff changeset
105 }
3105
9592b7d76633 Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3083
diff changeset
106
9592b7d76633 Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3083
diff changeset
107
9592b7d76633 Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3083
diff changeset
108 public static StyledXYSeries sampleFunction2D(
3109
63ef889eea2b SQ: Directly sample our Function objects instead of Function2D from JFreeChart.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3105
diff changeset
109 Function func,
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
110 ThemeDocument theme,
3109
63ef889eea2b SQ: Directly sample our Function objects instead of Function2D from JFreeChart.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3105
diff changeset
111 String seriesKey,
63ef889eea2b SQ: Directly sample our Function objects instead of Function2D from JFreeChart.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3105
diff changeset
112 int samples,
63ef889eea2b SQ: Directly sample our Function objects instead of Function2D from JFreeChart.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3105
diff changeset
113 double start,
63ef889eea2b SQ: Directly sample our Function objects instead of Function2D from JFreeChart.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3105
diff changeset
114 double end
3105
9592b7d76633 Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3083
diff changeset
115 ) {
9592b7d76633 Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3083
diff changeset
116 StyledXYSeries series = new StyledXYSeries(seriesKey, theme);
9592b7d76633 Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3083
diff changeset
117
9592b7d76633 Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3083
diff changeset
118 double step = (end - start) / (samples - 1);
9592b7d76633 Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3083
diff changeset
119
9592b7d76633 Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3083
diff changeset
120 for (int i = 0; i < samples; i++) {
9592b7d76633 Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3083
diff changeset
121 double x = start + (step * i);
3109
63ef889eea2b SQ: Directly sample our Function objects instead of Function2D from JFreeChart.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3105
diff changeset
122 series.add(x, func.value(x));
3105
9592b7d76633 Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3083
diff changeset
123 }
9592b7d76633 Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3083
diff changeset
124
9592b7d76633 Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3083
diff changeset
125 return series;
9592b7d76633 Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3083
diff changeset
126 }
4564
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
127
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
128 public static StyledXYSeries sampleFunction2DPositive(
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
129 Function func,
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
130 ThemeDocument theme,
4564
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
131 String seriesKey,
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
132 int samples,
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
133 double start,
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
134 double end
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
135 ) {
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
136 StyledXYSeries series = new StyledXYSeries(seriesKey, theme);
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
137
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
138 double step = (end - start) / (samples - 1);
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
139
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
140 for (int i = 0; i < samples; i++) {
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
141 double x = start + (step * i);
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
142 double v = func.value(x);
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
143 if (x > 0d && v > 0d) {
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
144 series.add(x, v);
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
145 }
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
146 }
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
147
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
148 return series;
080411ac948f More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3772
diff changeset
149 }
3018
fb07f936b5ad New helper.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
150 }
3083
4bd3d8bbb60c Added missing vim lines.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3076
diff changeset
151 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org