summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/visualization/svg
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/visualization/svg')
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/SVGArrow.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/SVGButton.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/SVGCheckbox.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/SVGCloneVisible.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/SVGEffects.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/SVGHyperCube.java4
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/SVGHyperSphere.java58
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/SVGPath.java32
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/SVGPlot.java6
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/SVGScoreBar.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/SVGSimpleLinearAxis.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/SVGUtil.java23
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/UpdateRunner.java4
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/UpdateSynchronizer.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/VoronoiDraw.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/svg/package-info.java2
16 files changed, 70 insertions, 77 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGArrow.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGArrow.java
index 3859deb5..cbae03e2 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGArrow.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGArrow.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGButton.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGButton.java
index 9d71c3d6..9b69ab14 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGButton.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGButton.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGCheckbox.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGCheckbox.java
index b6cf1165..dc27b989 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGCheckbox.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGCheckbox.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGCloneVisible.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGCloneVisible.java
index 749720ee..6397348c 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGCloneVisible.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGCloneVisible.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGEffects.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGEffects.java
index 79565902..9382e0b6 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGEffects.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGEffects.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGHyperCube.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGHyperCube.java
index 656e42da..64f5e9be 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGHyperCube.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGHyperCube.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -125,7 +125,7 @@ public class SVGHyperCube {
*/
private static ArrayList<double[]> getVisibleEdges(Projection2D proj, double[] s_min, double[] s_max) {
double[] s_deltas = VMath.minus(s_max, s_min);
- ArrayList<double[]> r_edges = new ArrayList<double[]>();
+ ArrayList<double[]> r_edges = new ArrayList<>();
for(int i = 0; i < s_min.length; i++) {
double[] delta = new double[s_min.length];
delta[i] = s_deltas[i];
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGHyperSphere.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGHyperSphere.java
index 33daa56b..14acc5c3 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGHyperSphere.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGHyperSphere.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -50,28 +50,26 @@ public class SVGHyperSphere {
/**
* Wireframe "manhattan" hypersphere
*
- * @param <D> radius
* @param svgp SVG Plot
* @param proj Visualization projection
* @param mid mean vector
- * @param rad radius
+ * @param radius radius
* @return path element
*/
- public static <D extends NumberDistance<?, ?>> Element drawManhattan(SVGPlot svgp, Projection2D proj, NumberVector<?> mid, D rad) {
- final double radius = rad.doubleValue();
+ public static Element drawManhattan(SVGPlot svgp, Projection2D proj, NumberVector<?> mid, double radius) {
final double[] v_mid = mid.getColumnVector().getArrayRef(); // a copy
final BitSet dims = proj.getVisibleDimensions2D();
SVGPath path = new SVGPath();
- for(int dim = dims.nextSetBit(0); dim >= 0; dim = dims.nextSetBit(dim + 1)) {
+ for (int dim = dims.nextSetBit(0); dim >= 0; dim = dims.nextSetBit(dim + 1)) {
v_mid[dim] += radius;
double[] p1 = proj.fastProjectDataToRenderSpace(v_mid);
v_mid[dim] -= radius;
v_mid[dim] -= radius;
double[] p2 = proj.fastProjectDataToRenderSpace(v_mid);
v_mid[dim] += radius;
- for(int dim2 = dims.nextSetBit(0); dim2 >= 0; dim2 = dims.nextSetBit(dim2 + 1)) {
- if(dim < dim2) {
+ for (int dim2 = dims.nextSetBit(0); dim2 >= 0; dim2 = dims.nextSetBit(dim2 + 1)) {
+ if (dim < dim2) {
v_mid[dim2] += radius;
double[] p3 = proj.fastProjectDataToRenderSpace(v_mid);
v_mid[dim2] -= radius;
@@ -97,20 +95,18 @@ public class SVGHyperSphere {
/**
* Wireframe "euclidean" hypersphere
*
- * @param <D> radius
* @param svgp SVG Plot
* @param proj Visualization projection
* @param mid mean vector
- * @param rad radius
+ * @param radius radius
* @return path element
*/
- public static <D extends NumberDistance<?, ?>> Element drawEuclidean(SVGPlot svgp, Projection2D proj, NumberVector<?> mid, D rad) {
- final double radius = rad.doubleValue();
+ public static Element drawEuclidean(SVGPlot svgp, Projection2D proj, NumberVector<?> mid, double radius) {
double[] v_mid = mid.getColumnVector().getArrayRef(); // a copy
BitSet dims = proj.getVisibleDimensions2D();
SVGPath path = new SVGPath();
- for(int dim = dims.nextSetBit(0); dim >= 0; dim = dims.nextSetBit(dim + 1)) {
+ for (int dim = dims.nextSetBit(0); dim >= 0; dim = dims.nextSetBit(dim + 1)) {
v_mid[dim] += radius;
double[] p1 = proj.fastProjectDataToRenderSpace(v_mid);
v_mid[dim] -= radius;
@@ -121,8 +117,8 @@ public class SVGHyperSphere {
double[] dt1 = new double[v_mid.length];
dt1[dim] = radius;
double[] d1 = proj.fastProjectRelativeDataToRenderSpace(dt1);
- for(int dim2 = dims.nextSetBit(0); dim2 >= 0; dim2 = dims.nextSetBit(dim2 + 1)) {
- if(dim < dim2) {
+ for (int dim2 = dims.nextSetBit(0); dim2 >= 0; dim2 = dims.nextSetBit(dim2 + 1)) {
+ if (dim < dim2) {
v_mid[dim2] += radius;
double[] p3 = proj.fastProjectDataToRenderSpace(v_mid);
v_mid[dim2] -= radius;
@@ -149,38 +145,34 @@ public class SVGHyperSphere {
/**
* Wireframe "Lp" hypersphere
*
- * @param <D> radius
* @param svgp SVG Plot
* @param proj Visualization projection
* @param mid mean vector
- * @param rad radius
+ * @param radius radius
* @param p L_p value
* @return path element
*/
- public static <D extends NumberDistance<?, ?>> Element drawLp(SVGPlot svgp, Projection2D proj, NumberVector<?> mid, D rad, double p) {
- final double radius = rad.doubleValue();
+ public static Element drawLp(SVGPlot svgp, Projection2D proj, NumberVector<?> mid, double radius, double p) {
final double[] v_mid = mid.getColumnVector().getArrayRef();
final BitSet dims = proj.getVisibleDimensions2D();
final double kappax, kappay;
- if(p > 1.) {
+ if (p > 1.) {
final double kappal = Math.pow(0.5, 1. / p);
kappax = Math.min(1.3, 4. * (2 * kappal - 1) / 3.);
kappay = 0;
- }
- else if(p < 1.) {
+ } else if (p < 1.) {
final double kappal = 1 - Math.pow(0.5, 1. / p);
kappax = 0;
kappay = Math.min(1.3, 4. * (2 * kappal - 1) / 3.);
- }
- else {
+ } else {
kappax = 0;
kappay = 0;
}
// LoggingUtil.warning("kappax: " + kappax + " kappay: " + kappay);
SVGPath path = new SVGPath();
- for(int dim = dims.nextSetBit(0); dim >= 0; dim = dims.nextSetBit(dim + 1)) {
+ for (int dim = dims.nextSetBit(0); dim >= 0; dim = dims.nextSetBit(dim + 1)) {
v_mid[dim] += radius;
double[] pvp0 = proj.fastProjectDataToRenderSpace(v_mid);
v_mid[dim] -= radius;
@@ -191,8 +183,8 @@ public class SVGHyperSphere {
double[] tvd0 = new double[v_mid.length];
tvd0[dim] = radius;
double[] vd0 = proj.fastProjectRelativeDataToRenderSpace(tvd0);
- for(int dim2 = dims.nextSetBit(0); dim2 >= 0; dim2 = dims.nextSetBit(dim2 + 1)) {
- if(dim < dim2) {
+ for (int dim2 = dims.nextSetBit(0); dim2 >= 0; dim2 = dims.nextSetBit(dim2 + 1)) {
+ if (dim < dim2) {
v_mid[dim2] += radius;
double[] pv0p = proj.fastProjectDataToRenderSpace(v_mid);
v_mid[dim2] -= radius;
@@ -204,7 +196,7 @@ public class SVGHyperSphere {
tv0d[dim2] = radius;
double[] v0d = proj.fastProjectRelativeDataToRenderSpace(tv0d);
- if(p > 1) {
+ if (p > 1) {
// p > 1
path.moveTo(pvp0[0], pvp0[1]);
// support points, p0 to 0p
@@ -232,8 +224,7 @@ public class SVGHyperSphere {
final double s_pm2_y = pvp0[1] - v0d[1] * kappax;
path.cubicTo(s_pm1_x, s_pm1_y, s_pm2_x, s_pm2_y, pvp0[0], pvp0[1]);
path.close();
- }
- else if(p < 1) {
+ } else if (p < 1) {
// p < 1
// support points, p0 to 0p
final double s_vp0_x = pvp0[0] - vd0[0] * kappay;
@@ -251,8 +242,7 @@ public class SVGHyperSphere {
path.cubicTo(s_vm0_x, s_vm0_y, s_v0m_x, s_v0m_y, pv0m[0], pv0m[1]);
path.cubicTo(s_v0m_x, s_v0m_y, s_vp0_x, s_vp0_y, pvp0[0], pvp0[1]);
path.close();
- }
- else {
+ } else {
// p == 1 - Manhattan
path.moveTo(pvp0[0], pvp0[1]);
path.lineTo(pv0p[0], pv0p[1]);
@@ -283,7 +273,7 @@ public class SVGHyperSphere {
final BitSet dims = proj.getVisibleDimensions2D();
SVGPath path = new SVGPath();
- for(int dim = dims.nextSetBit(0); dim >= 0; dim = dims.nextSetBit(dim + 1)) {
+ for (int dim = dims.nextSetBit(0); dim >= 0; dim = dims.nextSetBit(dim + 1)) {
v_mid[dim] += radius;
double[] p1 = proj.fastProjectDataToRenderSpace(v_mid);
v_mid[dim] -= radius;
@@ -296,4 +286,4 @@ public class SVGHyperSphere {
}
return path.makeElement(svgp);
}
-} \ No newline at end of file
+}
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGPath.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGPath.java
index 7c3e97e9..6937ab3e 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGPath.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGPath.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -27,7 +27,9 @@ import org.apache.batik.util.SVGConstants;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import de.lmu.ifi.dbs.elki.data.spatial.Polygon;
import de.lmu.ifi.dbs.elki.math.linearalgebra.Vector;
+import de.lmu.ifi.dbs.elki.utilities.datastructures.iterator.ArrayListIter;
/**
* Element used for building an SVG path using a string buffer.
@@ -132,9 +134,10 @@ public class SVGPath {
*
* @param vectors vectors
*/
- public SVGPath(Iterable<Vector> vectors) {
+ public SVGPath(Polygon vectors) {
this();
- for(Vector vec : vectors) {
+ for (ArrayListIter<Vector> it = vectors.iter(); it.valid(); it.advance()) {
+ Vector vec = it.get();
this.drawTo(vec.get(0), vec.get(1));
}
this.close();
@@ -151,10 +154,9 @@ public class SVGPath {
* @return path object, for compact syntax.
*/
public SVGPath drawTo(double x, double y) {
- if(!isStarted()) {
+ if (!isStarted()) {
moveTo(x, y);
- }
- else {
+ } else {
lineTo(x, y);
}
return this;
@@ -170,10 +172,9 @@ public class SVGPath {
* @return path object, for compact syntax.
*/
public SVGPath drawTo(double[] xy) {
- if(!isStarted()) {
+ if (!isStarted()) {
moveTo(xy);
- }
- else {
+ } else {
lineTo(xy);
}
return this;
@@ -189,10 +190,9 @@ public class SVGPath {
* @return path object, for compact syntax.
*/
public SVGPath drawTo(Vector xy) {
- if(!isStarted()) {
+ if (!isStarted()) {
moveTo(xy);
- }
- else {
+ } else {
lineTo(xy);
}
return this;
@@ -788,11 +788,11 @@ public class SVGPath {
* @param ds coordinates.
*/
private void append(String action, double... ds) {
- if(lastaction != action) {
+ if (lastaction != action) {
buf.append(action);
lastaction = action;
}
- for(double d : ds) {
+ for (double d : ds) {
buf.append(SVGUtil.FMT.format(d));
buf.append(' ');
}
@@ -804,7 +804,7 @@ public class SVGPath {
* @return path object, for compact syntax.
*/
public SVGPath close() {
- if(lastaction != SVGConstants.PATH_CLOSE) {
+ if (lastaction != SVGConstants.PATH_CLOSE) {
buf.append(SVGConstants.PATH_CLOSE);
lastaction = SVGConstants.PATH_CLOSE;
}
@@ -842,4 +842,4 @@ public class SVGPath {
public String toString() {
return buf.toString();
}
-} \ No newline at end of file
+}
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGPlot.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGPlot.java
index 43244047..44ec906b 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGPlot.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGPlot.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -119,7 +119,7 @@ public class SVGPlot {
/**
* Manage objects with an id.
*/
- private HashMap<String, WeakReference<Element>> objWithId = new HashMap<String, WeakReference<Element>>();
+ private HashMap<String, WeakReference<Element>> objWithId = new HashMap<>();
/**
* Registers changes of this SVGPlot.
@@ -581,7 +581,7 @@ public class SVGPlot {
* @param obj Element
*/
public void putIdElement(String id, Element obj) {
- objWithId.put(id, new WeakReference<Element>(obj));
+ objWithId.put(id, new WeakReference<>(obj));
}
/**
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGScoreBar.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGScoreBar.java
index 3af2ea41..e421cafa 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGScoreBar.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGScoreBar.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGSimpleLinearAxis.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGSimpleLinearAxis.java
index 930e9e8e..3fd28d3d 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGSimpleLinearAxis.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGSimpleLinearAxis.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGUtil.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGUtil.java
index 633cb3e5..0e680e12 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGUtil.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/SVGUtil.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -43,6 +43,7 @@ import org.w3c.dom.svg.SVGMatrix;
import org.w3c.dom.svg.SVGPoint;
import de.lmu.ifi.dbs.elki.logging.LoggingUtil;
+import de.lmu.ifi.dbs.elki.math.MathUtil;
/**
* Utility class for SVG processing.
@@ -87,7 +88,7 @@ public final class SVGUtil {
static {
// Build a reasonably sized hashmap. Use 0
- SVG_COLOR_NAMES = new TObjectIntHashMap<String>(90, .8f, NO_VALUE);
+ SVG_COLOR_NAMES = new TObjectIntHashMap<>(90, .8f, NO_VALUE);
// List taken from SVG specification:
// http://www.w3.org/TR/SVG/types.html#ColorKeywords
SVG_COLOR_NAMES.put("aliceblue", 0xFFF0F8FF);
@@ -512,18 +513,20 @@ public final class SVGUtil {
}
/**
- * Convert a color name from an AWT color object to CSS syntax
+ * Convert a color name from an integer RGB color to CSS syntax
*
- * Note: currently only RGB (from ARGB order) are supported.
+ * Note: currently only RGB (from ARGB order) are supported. The alpha channel
+ * will be ignored.
*
* @param col Color value
* @return Color string
*/
public static String colorToString(int col) {
- char[] buf = new char[] { '#', '0', '0', '0', '0', '0', '0' };
- for (int i = 7; i > 0; i--) {
- buf[i] += (col & 0xF);
- col >>= 4;
+ final char[] buf = new char[] { '#', 'X', 'X', 'X', 'X', 'X', 'X' };
+ for (int i = 6; i > 0; i--) {
+ final int v = (col & 0xF);
+ buf[i] = (char) ((v < 10) ? ('0' + v) : ('a' + v - 10));
+ col >>>= 4;
}
return new String(buf);
}
@@ -642,10 +645,10 @@ public final class SVGUtil {
*/
public static Element svgCircleSegment(SVGPlot svgp, double centerx, double centery, double angleStart, double angleDelta, double innerRadius, double outerRadius) {
double sin1st = Math.sin(angleStart);
- double cos1st = Math.cos(angleStart);
+ double cos1st = MathUtil.sinToCos(angleStart, sin1st);
double sin2nd = Math.sin(angleStart + angleDelta);
- double cos2nd = Math.cos(angleStart + angleDelta);
+ double cos2nd = MathUtil.sinToCos(angleStart + angleDelta, sin2nd);
double inner1stx = centerx + (innerRadius * sin1st);
double inner1sty = centery - (innerRadius * cos1st);
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/UpdateRunner.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/UpdateRunner.java
index 463c7c63..edf40621 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/UpdateRunner.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/UpdateRunner.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -46,7 +46,7 @@ public class UpdateRunner {
/**
* The queue of pending updates
*/
- final private Queue<Runnable> queue = new ConcurrentLinkedQueue<Runnable>();
+ final private Queue<Runnable> queue = new ConcurrentLinkedQueue<>();
/**
* Synchronizer that can block events from being executed right away.
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/UpdateSynchronizer.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/UpdateSynchronizer.java
index 3f249871..a91fb142 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/UpdateSynchronizer.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/UpdateSynchronizer.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/VoronoiDraw.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/VoronoiDraw.java
index 2997456d..e5824fba 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/VoronoiDraw.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/VoronoiDraw.java
@@ -3,7 +3,7 @@ package de.lmu.ifi.dbs.elki.visualization.svg;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/svg/package-info.java b/src/de/lmu/ifi/dbs/elki/visualization/svg/package-info.java
index 7811b493..7f816cff 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/svg/package-info.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/svg/package-info.java
@@ -6,7 +6,7 @@
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
-Copyright (C) 2012
+Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team