Я бы выбрал два единичных перпендикулярных вектора v, w, которые определяют плоскость, в которой нужно вращаться, а затем перебрал угол и выбрал правильное соотношение этих векторов v и w, чтобы построить ваш вектор p = av + bw.
Более подробная информация идет.
EDIT:
Это может помочь
http://en.wikipedia.org/wiki/Orbit_equation
РЕДАКТИРОВАТЬ: Я думаю, что это на самом деле
центр + грех (угол) * v * радиус1 + cos (угол) * ш * радиус2
Здесь v и w - ваши единичные векторы для круга.
В 2D они были (1,0) и (0,1).
В 3D вам нужно будет их вычислить - зависит от ориентации плоскости.
Если вы установите радиус 1 = радиус 2, вы получите круг. В противном случае вы должны получить эллипс.