本来以为抄个作业就完事,结果作业是错的,废了一个晚上 cao
matlab:
clear,clc
close all
%% 定义初始圆的参数
% 定义3维圆圈的圆心坐标
O = [0, 0, 0];
% 定义半径的大小
r = 2;
% 定义法向向量
n = [1, 1, 2];
%% 开始绘制3维圆圈
theta = linspace(0, 2*pi, 100);
x = O(1)+r*n(2)/sqrt(n(1)^2+n(2)^2).*cos(theta)+...
r*n(1)*n(3)/(sqrt(n(1)^2+n(2)^2)*sqrt(n(1)^2+n(2)^2+n(3)^2)).*sin(theta);
y = O(2)-r*n(1)/sqrt(n(1)^2+n(2)^2).*cos(theta)+...
r*n(2)*n(3)/(sqrt(n(1)^2+n(2)^2)*sqrt(n(1)^2+n(2)^2+n(3)^2)).*sin(theta);
z = O(3)-r*sqrt(n(1)^2+n(2)^2)/sqrt(n(1)^2+n(2)^2+n(3)^2).*sin(theta);
plot3(x,y,z,'r-', 'LineWidth', 1.3)