@Override public Distance calculateDistance(Collection<Distance> distances) { double max = Double.NaN; for (Distance dist : distances) { if (Double.isNaN(max) || dist.getDistance() > max) max = dist.getDistance(); } return new Distance(max); } }
@Override public Distance calculateDistance(Collection<Distance> distances) { double sum = 0; double weightTotal = 0; for (Distance distance : distances) { weightTotal += distance.getWeight(); sum += distance.getDistance() * distance.getWeight(); } return new Distance(sum / weightTotal, weightTotal); } }
String distanceString = distance.getDistance().toString().replace(",", "."); String weightString = distance.getWeight().toString().replace(",", "."); if(firstChild) cdtString+=":"+distanceString+","; else cdtString+=":"+weightString;
@Override public void paint(Graphics2D g, int xDisplayOffset, int yDisplayOffset, double xDisplayFactor, double yDisplayFactor, boolean decorated) { int x1, y1, x2, y2; FontMetrics fontMetrics = g.getFontMetrics(); x1 = (int)(initPoint.getX() * xDisplayFactor + xDisplayOffset); y1 = (int)(initPoint.getY() * yDisplayFactor + yDisplayOffset); x2 = (int)(linkPoint.getX() * xDisplayFactor + xDisplayOffset); y2 = y1; g.fillOval(x1-dotRadius, y1-dotRadius, dotRadius * 2, dotRadius * 2); g.drawLine(x1, y1, x2, y2); if (cluster.isLeaf()) { g.drawString(cluster.getName(), x1 + namePadding, y1 + (fontMetrics.getHeight()/2) - 2); } if (decorated && cluster.getDistance() != null && !cluster.getDistance().isNaN() && cluster.getDistance().getDistance() > 0) { String s = String.format("%.2f", cluster.getDistance()); Rectangle2D rect = fontMetrics.getStringBounds(s, g); g.drawString(s, x1 - (int)rect.getWidth() , y1 - 2); } x1 = x2; y1 = y2; y2 = (int)(linkPoint.getY() * yDisplayFactor + yDisplayOffset); g.drawLine(x1, y1, x2, y2); for (ClusterComponent child : children) { child.paint(g, xDisplayOffset, yDisplayOffset, xDisplayFactor, yDisplayFactor, decorated); } }
public Double getDistanceValue() { return distance.getDistance(); }
private List<Cluster> createClusters(String[] clusterNames, double[] weights) { List<Cluster> clusters = new ArrayList<Cluster>(); for (int i = 0; i < weights.length; i++) { Cluster cluster = new Cluster(clusterNames[i]); cluster.setDistance(new Distance(0.0, weights[i])); clusters.add(cluster); } return clusters; }
public Double getWeightValue() { return distance.getWeight(); }
String distanceString = distance.getDistance().toString().replace(",", "."); String weightString = distance.getWeight().toString().replace(",", "."); if(firstChild) cdtString+=":"+distanceString+","; else cdtString+=":"+weightString;
@Override public void paint(Graphics2D g, int xDisplayOffset, int yDisplayOffset, double xDisplayFactor, double yDisplayFactor, boolean decorated) { int x1, y1, x2, y2; FontMetrics fontMetrics = g.getFontMetrics(); x1 = (int)(initPoint.getX() * xDisplayFactor + xDisplayOffset); y1 = (int)(initPoint.getY() * yDisplayFactor + yDisplayOffset); x2 = (int)(linkPoint.getX() * xDisplayFactor + xDisplayOffset); y2 = y1; g.fillOval(x1-dotRadius, y1-dotRadius, dotRadius * 2, dotRadius * 2); g.drawLine(x1, y1, x2, y2); if (cluster.isLeaf()) { g.drawString(cluster.getName(), x1 + namePadding, y1 + (fontMetrics.getHeight()/2) - 2); } if (decorated && cluster.getDistance() != null && !cluster.getDistance().isNaN() && cluster.getDistance().getDistance() > 0) { String s = String.format("%.2f", cluster.getDistance()); Rectangle2D rect = fontMetrics.getStringBounds(s, g); g.drawString(s, x1 - (int)rect.getWidth() , y1 - 2); } x1 = x2; y1 = y2; y2 = (int)(linkPoint.getY() * yDisplayFactor + yDisplayOffset); g.drawLine(x1, y1, x2, y2); for (ClusterComponent child : children) { child.paint(g, xDisplayOffset, yDisplayOffset, xDisplayFactor, yDisplayFactor, decorated); } }
public Double getDistanceValue() { return distance.getDistance(); }
private List<Cluster> createClusters(String[] clusterNames, double[] weights) { List<Cluster> clusters = new ArrayList<Cluster>(); for (int i = 0; i < weights.length; i++) { Cluster cluster = new Cluster(clusterNames[i]); cluster.setDistance(new Distance(0.0, weights[i])); clusters.add(cluster); } return clusters; }
public Double getWeightValue() { return distance.getWeight(); }
@Override public Distance calculateDistance(Collection<Distance> distances) { double max = Double.NaN; for (Distance dist : distances) { if (Double.isNaN(max) || dist.getDistance() > max) max = dist.getDistance(); } return new Distance(max); } }
@Override public Distance calculateDistance(Collection<Distance> distances) { double sum = 0; double weightTotal = 0; for (Distance distance : distances) { weightTotal += distance.getWeight(); sum += distance.getDistance() * distance.getWeight(); } return new Distance(sum / weightTotal, weightTotal); } }
@Override public int compareTo(Distance distance) { return distance == null ? 1 : getDistance().compareTo(distance.getDistance()); }
@Override public Distance calculateDistance(Collection<Distance> distances) { double min = Double.NaN; for (Distance dist : distances) { if (Double.isNaN(min) || dist.getDistance() < min) min = dist.getDistance(); } return new Distance(min); } }
@Override public int compareTo(Distance distance) { return distance == null ? 1 : getDistance().compareTo(distance.getDistance()); }
@Override public Distance calculateDistance(Collection<Distance> distances) { double min = Double.NaN; for (Distance dist : distances) { if (Double.isNaN(min) || dist.getDistance() < min) min = dist.getDistance(); } return new Distance(min); } }