public double addRoot(Complex root) {
		ListIterator<Complex> i = (ListIterator<Complex>) roots.iterator();
		double colorFactor = 10 / rootBoundry;
		while (i.hasNext()) {
			int index = i.nextIndex();
			Complex c = (Complex) i.next();
			if (distance(root, c) < rootBoundry) {
				double retVal = index + colorFactor * distance(root, c);
				return Math.min(roots.size() - 1, retVal);
			}
		}

		if (roots.size() < 20 && quad > 4) {
			roots.add(root);
			System.out.println("add root:" + roots.size());
		}
		return roots.size() - 1;
	}