private void paintExternalForce(Graphics2D g) {

		g.setColor(((MDView) model.getView()).contrastBackground());

		double place1 = x + width;
		double place2 = place1 + 8.0;
		double place3 = y + height;
		double place4 = place3 + 8.0;
		int nx = (int) (width / delta);
		int ny = (int) (height / delta);
		int i;
		double half;

		if (tempLine == null)
			tempLine = new Line2D.Double();
		g.setStroke(ViewAttribute.THIN);

		if (hx < -Particle.ZERO) {
			for (i = 0; i < ny; i++) {
				half = (i + 0.5) * delta;
				/* draw arrows on the right side */
				tempLine.setLine(place1 + 4, y + half, place2 + 4, y + half);
				g.draw(tempLine);
				tempLine.setLine(place1 + 4, y + half, place1 + 6, y + half + 2);
				g.draw(tempLine);
				tempLine.setLine(place1 + 4, y + half, place1 + 6, y + half - 2);
				g.draw(tempLine);
			}
		} else if (hx > Particle.ZERO) {
			for (i = 0; i < ny; i++) {
				half = (i + 0.5) * delta;
				/* draw arrows on the left side */
				tempLine.setLine(x - 12, y + half, x - 4, y + half);
				g.draw(tempLine);
				tempLine.setLine(x - 6, y + half + 2, x - 4, y + half);
				g.draw(tempLine);
				tempLine.setLine(x - 6, y + half - 2, x - 4, y + half);
				g.draw(tempLine);
			}
		}
		if (hy < -Particle.ZERO) {
			for (i = 0; i < nx; i++) {
				half = (i + 0.5) * delta;
				/* draw arrows on the lower side */
				tempLine.setLine(x + half, place3 + 4, x + half, place4 + 4);
				g.draw(tempLine);
				tempLine.setLine(x + half, place3 + 4, x + half + 2, place3 + 6);
				g.draw(tempLine);
				tempLine.setLine(x + half, place3 + 4, x + half - 2, place3 + 6);
				g.draw(tempLine);
			}
		} else if (hy > Particle.ZERO) {
			for (i = 0; i < nx; i++) {
				half = (i + 0.5) * delta;
				/* draw arrows on the northern side */
				tempLine.setLine(x + half, y - 12, x + half, y - 4);
				g.draw(tempLine);
				tempLine.setLine(x + half + 2, y - 6, x + half, y - 4);
				g.draw(tempLine);
				tempLine.setLine(x + half - 2, y - 6, x + half, y - 4);
				g.draw(tempLine);
			}
		}
	}