|
|
|
@ -6,9 +6,9 @@
|
|
|
|
|
// Frankfurt, Germany, 2005
|
|
|
|
|
// Created 08.10.2005
|
|
|
|
|
//
|
|
|
|
|
// $LastChangedDate: 2005-10-22 15:28:04 +0200 (Sat, 22 Oct 2005) $
|
|
|
|
|
// $LastChangedRevision: 968 $
|
|
|
|
|
// $LastChangedBy: theli $
|
|
|
|
|
// $LastChangedDate$
|
|
|
|
|
// $LastChangedRevision$
|
|
|
|
|
// $LastChangedBy$
|
|
|
|
|
//
|
|
|
|
|
// This program is free software; you can redistribute it and/or modify
|
|
|
|
|
// it under the terms of the GNU General Public License as published by
|
|
|
|
@ -45,27 +45,28 @@
|
|
|
|
|
|
|
|
|
|
package de.anomic.plasma;
|
|
|
|
|
|
|
|
|
|
import java.util.Iterator;
|
|
|
|
|
import java.util.Enumeration;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import de.anomic.yacy.yacyCore;
|
|
|
|
|
import de.anomic.yacy.yacySearch;
|
|
|
|
|
import de.anomic.yacy.yacySeed;
|
|
|
|
|
|
|
|
|
|
import de.anomic.ymage.ymagePainter;
|
|
|
|
|
import de.anomic.ymage.ymageMatrix;
|
|
|
|
|
import de.anomic.ymage.ymageMatrixPainter;
|
|
|
|
|
import de.anomic.ymage.ymagePainter;
|
|
|
|
|
|
|
|
|
|
import de.anomic.yacy.yacyCore;
|
|
|
|
|
import de.anomic.yacy.yacySeed;
|
|
|
|
|
import de.anomic.yacy.yacySearch;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.Enumeration;
|
|
|
|
|
import java.util.Iterator;
|
|
|
|
|
|
|
|
|
|
public class plasmaGrafics {
|
|
|
|
|
|
|
|
|
|
private static int shortestName = 10;
|
|
|
|
|
private static int longestName = 12;
|
|
|
|
|
|
|
|
|
|
private static int maxRadius = 28;
|
|
|
|
|
|
|
|
|
|
private static ymagePainter networkPicture = null;
|
|
|
|
|
private static long networkPictureDate = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static ymagePainter getSearchEventPicture() {
|
|
|
|
|
if (plasmaSearchEvent.lastEvent == null) return null;
|
|
|
|
|
yacySearch[] searches = plasmaSearchEvent.lastEvent.getSearchThreads();
|
|
|
|
@ -76,7 +77,7 @@ public class plasmaGrafics {
|
|
|
|
|
if (eventPicture instanceof ymageMatrixPainter) eventPicture = new ymageMatrixPainter((ymageMatrix) eventPicture);
|
|
|
|
|
|
|
|
|
|
// get dimensions
|
|
|
|
|
int cr = Math.min(eventPicture.getWidth(), eventPicture.getHeight()) / 5 - 20;
|
|
|
|
|
int cr = Math.min(eventPicture.getWidth(), eventPicture.getHeight()) / 5 - maxRadius;
|
|
|
|
|
int cx = eventPicture.getWidth() / 2;
|
|
|
|
|
int cy = eventPicture.getHeight() / 2;
|
|
|
|
|
|
|
|
|
@ -88,7 +89,7 @@ public class plasmaGrafics {
|
|
|
|
|
eventPicture.setColor((searches[j].isAlive()) ? ymageMatrix.ADDITIVE_RED : ymageMatrix.ADDITIVE_GREEN);
|
|
|
|
|
hash = searches[j].target().hash;
|
|
|
|
|
angle = (int) ((long) 360 * (yacySeed.dhtPosition(hash) / (yacySeed.maxDHTDistance / (long) 10000)) / (long) 10000);
|
|
|
|
|
eventPicture.arcLine(cx, cy, cr - 20, cr, angle);
|
|
|
|
|
eventPicture.arcLine(cx, cy, cr - maxRadius, cr, angle);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// draw in the search target
|
|
|
|
@ -99,7 +100,7 @@ public class plasmaGrafics {
|
|
|
|
|
while (i.hasNext()) {
|
|
|
|
|
hash = (String) i.next();
|
|
|
|
|
angle = (int) ((long) 360 * (yacySeed.dhtPosition(hash) / (yacySeed.maxDHTDistance / (long) 10000)) / (long) 10000);
|
|
|
|
|
eventPicture.arcLine(cx, cy, cr - 20, cr, angle);
|
|
|
|
|
eventPicture.arcLine(cx, cy, cr - maxRadius, cr, angle);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return eventPicture;
|
|
|
|
@ -129,7 +130,7 @@ public class plasmaGrafics {
|
|
|
|
|
|
|
|
|
|
// draw network circle
|
|
|
|
|
networkPicture.setColor("008020");
|
|
|
|
|
networkPicture.arc(width / 2, height / 2, innerradius - 20, innerradius + 20, 0, 360);
|
|
|
|
|
networkPicture.arc(width / 2, height / 2, innerradius - maxRadius, innerradius + maxRadius, 0, 360);
|
|
|
|
|
|
|
|
|
|
//System.out.println("Seed Maximum distance is " + yacySeed.maxDHTDistance);
|
|
|
|
|
//System.out.println("Seed Minimum distance is " + yacySeed.minDHTNumber);
|
|
|
|
@ -179,7 +180,7 @@ public class plasmaGrafics {
|
|
|
|
|
totalCount += count;
|
|
|
|
|
|
|
|
|
|
// draw my own peer
|
|
|
|
|
drawNetworkPicturePeer(networkPicture, width / 2, height / 2, innerradius, outerradius, yacyCore.seedDB.mySeed, "800000", "AAAAAA", "FFFFFF", corona);
|
|
|
|
|
drawNetworkPicturePeer(networkPicture, width / 2, height / 2, innerradius, outerradius, yacyCore.seedDB.mySeed, "800000", "AAAAAA", "F00000", corona);
|
|
|
|
|
|
|
|
|
|
// draw description
|
|
|
|
|
networkPicture.setColor("FFFFFF");
|
|
|
|
@ -198,17 +199,21 @@ public class plasmaGrafics {
|
|
|
|
|
if (name.length() > longestName) longestName = name.length();
|
|
|
|
|
int angle = (int) ((long) 360 * (seed.dhtPosition() / (yacySeed.maxDHTDistance / (long) 10000)) / (long) 10000);
|
|
|
|
|
//System.out.println("Seed " + seed.hash + " has distance " + seed.dhtDistance() + ", angle = " + angle);
|
|
|
|
|
int linelength = 20 + outerradius * (20 * (name.length() - shortestName) / (longestName - shortestName) + (Math.abs(seed.hash.hashCode()) % 20)) / 60;
|
|
|
|
|
// int linelength = maxRadius + outerradius * (maxRadius * (name.length() - shortestName) / (longestName - shortestName) + (Math.abs(seed.hash.hashCode()) % maxRadius)) / 60;
|
|
|
|
|
// if (linelength > outerradius) linelength = outerradius;
|
|
|
|
|
int dotsize = 4 + 2 * (int) (seed.getLinkCount() / 1000000L); // peer dotsize
|
|
|
|
|
if (dotsize > (maxRadius - 2)) dotsize = maxRadius - 2;
|
|
|
|
|
|
|
|
|
|
int linelength = maxRadius + outerradius * (dotsize * (name.length() - shortestName) / (longestName - shortestName) + (Math.abs(seed.hash.hashCode()) % dotsize)) / 60;
|
|
|
|
|
if (linelength > outerradius) linelength = outerradius;
|
|
|
|
|
int dotsize = 6 + 2 * (int) (seed.getLinkCount() / 500000L);
|
|
|
|
|
if (dotsize > 18) dotsize = 18;
|
|
|
|
|
|
|
|
|
|
img.setMode(ymageMatrix.MODE_ADD);
|
|
|
|
|
// draw dot
|
|
|
|
|
img.setColor(colorDot);
|
|
|
|
|
img.arcDot(x, y, innerradius, angle, dotsize);
|
|
|
|
|
// draw line to text
|
|
|
|
|
img.setColor(colorLine);
|
|
|
|
|
img.arcLine(x, y, innerradius + 18, innerradius + linelength, angle);
|
|
|
|
|
// img.setColor(colorLine);
|
|
|
|
|
img.arcLine(x, y, innerradius + dotsize + 2, innerradius + linelength, angle);
|
|
|
|
|
// draw text
|
|
|
|
|
img.setColor(colorText);
|
|
|
|
|
img.arcPrint(x, y, innerradius + linelength, angle, name);
|
|
|
|
|