public Double getDistanceValue() { return distance.getDistance(); }
public Double getDistanceValue() { return distance.getDistance(); }
@Override public int compareTo(Distance distance) { return distance == null ? 1 : getDistance().compareTo(distance.getDistance()); }
@Override public int compareTo(Distance distance) { return distance == null ? 1 : getDistance().compareTo(distance.getDistance()); }
@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 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 min = Double.NaN; for (Distance dist : distances) { if (Double.isNaN(min) || dist.getDistance() < min) min = dist.getDistance(); } return new Distance(min); } }
@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 Distance calculateDistance(Collection<Distance> distances) { double sum = 0; double result; for (Distance dist : distances) { sum += dist.getDistance(); } if (distances.size() > 0) { result = sum / distances.size(); } else { result = 0.0; } return new Distance(result); } }
@Override public Distance calculateDistance(Collection<Distance> distances) { double sum = 0; double result; for (Distance dist : distances) { sum += dist.getDistance(); } if (distances.size() > 0) { result = sum / distances.size(); } else { result = 0.0; } return new Distance(result); } }
public double getTotalDistance() { Double dist = getDistance() == null ? 0 : getDistance().getDistance(); if (getChildren().size() > 0) { dist += children.get(0).getTotalDistance(); } return dist; }
public double getTotalDistance() { Double dist = getDistance() == null ? 0 : getDistance().getDistance(); if (getChildren().size() > 0) { dist += children.get(0).getTotalDistance(); } return dist; }
@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 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+",";
@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); } }
@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); } }
String distanceString = distance.getDistance().toString().replace(",", "."); String weightString = distance.getWeight().toString().replace(",", "."); if(firstChild) cdtString+=":"+distanceString+",";
newLinkage.setLinkageDistance(newDistance.getDistance()); distances.add(newLinkage);
newLinkage.setLinkageDistance(newDistance.getDistance()); distances.add(newLinkage);