public Coordinate2D locateAtSlope (double t) {
		assert this.root != null : "this.root != null";
		
		Node<Coordinate2D> itr = root;
		while (itr != null) {
			int i = determineCase(itr.lMax, t);
			if (i*t < 0) {//note: t positive angle vs. negative angle, the behaviors are different
				itr = itr.right;
			}
			else if (i*t > 0) {
				itr = itr.left;
			}
			else {
				itr = itr.lMax;
				break;
			}
		}
		
		assert itr != null : "something is wrong if itr == null";
		
		return itr.ex;
	}