@Override
	public void setCenterLocation(double x, double y) {
		super.setCenterLocation(x, y);
		if (!lastLocations.isEmpty()) {
			// do some averaving to show some intermediate positions for
			// fast-moving object (rifle projectiles)

			if (lastLocations.size() > 1) {
				double[] c1 = lastLocations.get(lastLocations.size() - 1);
				double[] c2 = lastLocations.get(0);
				lastLocations.add(new double[] { (c1[0] + c2[0]) / 2,
						(c1[1] + c2[1]) / 2 });
			}
			double[] prev = lastLocations.removeLast();

			for (int i = 0; i < NB_HISTORY; i++) {
				if (prev != null) {
					double t = (double) i / (NB_HISTORY);
					lastLocations.add(new double[] { t * x + (1 - t) * prev[0],
							t * y + (1 - t) * prev[1] });
				}
			}
		}
		lastLocations.add(new double[] { x, y });
	}