private void drawCircles(final Graphics2D g2, final Color fillColor,
			final Color outlineColor, final int height) {
		Point upperLeft = this.getUpperLeft();
		int startX = upperLeft.x + (this.getWidth() / 2);
		int startY = height + upperLeft.y;
		Point tailStart = new Point(startX, startY);
		Point tailEnd = this.getTailEnd();
		double totalDistance = 0;
		double distance = Geometry.getDistance(startX, startY, tailEnd.x,
				tailEnd.y);
		double heading = Geometry.getTurtleHeading(startX, startY, tailEnd.x,
				tailEnd.y);
		Point nextPoint = null;

		// if the distance is less than 3 do nothing
		if (distance < 3) {
		}
		// if distance <= 6 draw 1 circle of distance width
		else if (distance <= 6) {
			this.drawCircle(tailStart, heading, distance, distance, tailStart,
					fillColor, outlineColor, g2);
			// draw 2 circles
		} else if (distance <= 10) {
			// draw one of size 6
			nextPoint = this.drawCircle(tailStart, heading, 6, 6, tailStart,
					fillColor, outlineColor, g2);
			// and another of remaining size
			distance = distance - 6;
			totalDistance = 6 + distance;
			this.drawCircle(nextPoint, heading, distance, totalDistance,
					tailStart, fillColor, outlineColor, g2);
		} else {
			// draw one of size 10
			nextPoint = this.drawCircle(tailStart, heading, 10, 10, tailStart,
					fillColor, outlineColor, g2);
			distance = distance - 10;
			// if more room draw a size 6 one
			if (distance >= 6) {
				totalDistance = 10 + 6;
				nextPoint = this.drawCircle(nextPoint, heading, 6,
						totalDistance, tailStart, fillColor, outlineColor, g2);
				distance = distance - 6;
			}
			// draw size 4 ones with space of 2 pixels between
			while (distance >= 6) {
				totalDistance += 2;
				distance = distance - 2;
				nextPoint = Geometry.getPointAtDistance(tailStart, heading,
						totalDistance);
				totalDistance = totalDistance + 4;
				nextPoint = this.drawCircle(nextPoint, heading, 4,
						totalDistance, tailStart, fillColor, outlineColor, g2);
				distance = distance - 4;
			}
		}
	}