Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/jfree/JFreeUtil.java @ 6800:1976350aa8dc double-precision
Importer Doc: reformat tables in parser descriptions of geo-importer.
author | Tom Gottfried <tom.gottfried@intevation.de> |
---|---|
date | Fri, 09 Aug 2013 15:42:36 +0200 |
parents | af13ceeba52a |
children | 1b35b2ddfc28 |
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 import org.w3c.dom.Document; |
d8f2ab5b61c3
Added JFreeUtil.randomizeLine() to generate randomized lines.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3109
diff
changeset
|
20 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4564
diff
changeset
|
21 import org.dive4elements.river.artifacts.math.Function; |
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, |
63ef889eea2b
SQ: Directly sample our Function objects instead of Function2D from JFreeChart.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3105
diff
changeset
|
110 Document theme, |
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, |
080411ac948f
More solid S/Q function sampling
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3772
diff
changeset
|
130 Document theme, |
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 : |