Я полагаю, что точка, в которой вы выбираете градиент для запуска, будет в действительности находиться в центре градиента, если вы используете System.Drawing.Drawing2D. Я могу ошибаться, но похоже на Систему. используют начало градиента в этой точке вместо центра, который, кажется, ведет к некоторому смещению.