public double getPerimeter() {
		
		Point start = this.items.get(0);
		for (Point item : this.items) {
			if (item.getY() < start.getY())
				start = item;
		}
		
		double peri = 0.0;
		Point current = start;
		double lastAngle = 0.0;
		do {
			Point next = null;
			for (Point item : this.items) {
				if (item == current)
					continue;
				
				if (next == null)
					next = item;
				
				double nextAngle = (current.angleTo(item) + lastAngle) % (Math.PI*2);
				double currentAngle = (current.angleTo(next) + lastAngle) % (Math.PI*2);
				if (nextAngle != lastAngle && nextAngle < currentAngle)
					next = item;
			}
			peri += current.distanceTo(next);
			lastAngle = next.angleTo(current);
			current = next;		
		} while (current != start);
		
		return peri;
	}