I am surprised at the behavior of VectorPlot in the following sense: plotting a vector field and examining the output at a point $(x_0,y_0)$ reveals that Mathematica doesn't draw the tail of the arrow at $(x_0,y_0)$ but rather it draws the base of the arrowhead at $(x_0,y_0)$. (Of course, the output points the arrow in the correct direction.)
This is, in my opinion, confusing/misleading for students learning about vector fields.
Has anyone developed an efficient workaround to this, so that when we plot the vector field we get output that positions the tail of the arrowhead at the point $(x_0,y_0)$ rather than the base of the arrowhead?
Here is some output which perhaps more clearly portrays the issue:
pts = Flatten[Table[{i, j}, {i, -1, 1, .5}, {j, -1, 1, .5}], 1];
p1 = ListPlot[pts, PlotStyle -> {{Red, PointSize[Large]}}];
p2 = VectorPlot[{x + y, 1}, {x, -1, 1}, {y, -1, 1}, VectorPoints -> pts, VectorScale -> Medium];
Show[p2, p1]