Поскольку круг по сути является двухмерной сущностью, вам необходимо сгенерировать точки, представляющие его, на некоторой известной двухмерной плоскости, встроенной в трехмерное пространство.Тогда вы сможете вращать, масштабировать и переводить его по своему усмотрению.
Простой демонстрационный код, надеюсь, прояснит:
n= 78; theta= linspace(0, 2* pi, n); c= [1 2 3]'; r= sqrt(2);
points= r*[cos(theta); sin(theta); zeros(1, n)]+ repmat(c, 1, n);
plot3(points(1,:), points(2,:), points(3,:), 's-')
axis equal, hold on
R= rref([rand(3) eye(3)]); R= R(:, 4: 6);
points= R* points;
plot3(points(1,:), points(2,:), points(3,:), 'ro')