clear variables, close all
P1 = [0 0 0]; P8 = [0 0 1]; P5 = [1 .5 2]; P6 = [2 2 3];
h = figure; hold on
plot3(P1(1),P1(2),P1(3),'o')
plot3(P8(1),P8(2),P8(3),'o')
plot3(P5(1),P5(2),P5(3),'o')
plot3(P6(1),P6(2),P6(3),'o')
axis equal, view([1 1 1])
C0 = (P1+P5)/2;
figure(h), plot3(C0(1),C0(2),C0(3),'*')
R = sqrt(sum((P5-P1).^2,2))/2;
nPt = 100;
alpha = linspace(0,2*pi,nPt).';
P = [R.*cos(alpha) R.*sin(alpha) zeros(nPt,1)];
v1 = cross(P8-P1,P5-P1);
figure(h), quiver3(C0(1),C0(2),C0(3),v1(1),v1(2),v1(3))
R1 = rotationMatrix(C0,C0+v1,P5);
Pc1 = P*R1'+C0;
plot3(Pc1(:,1),Pc1(:,2),Pc1(:,3),'-');
v2 = cross(P6-P1,P5-P1);
figure(h), quiver3(C0(1),C0(2),C0(3),v2(1),v2(2),v2(3))
R2 = rotationMatrix(C0,C0+v2,P5);
Pc2 = P*R2'+C0;
plot3(Pc2(:,1),Pc2(:,2),Pc2(:,3),'-');
Best Answer