[C] 纯文本查看 复制代码 w = 2*pi; % rad/s
t = linspace(0, 1, 100); % 时间[0, 1]秒
% Ua, Ub, Uc 相差120°
Ua = cos(w*t);
Ub = cos(w*t - 2*pi/3);
Uc = cos(w*t - 4*pi/3);
% 初始化图形窗口
figure;
theta = zeros(1, length(t)); % 初始化角度数组
rho = zeros(1, length(t)); % 初始化幅值数组
polarplot(theta, rho, 'k-'); % 使用黑色线初始化图形(这只是一个占位符)
% 绘制动画
for i = 1:length(t)
% 计算合成复数的角度和幅值
Us = Ua(i) + Ub(i)*exp(2*pi/3*1i) + Uc(i)*exp(4*pi/3*1i);
theta(i) = angle(Us);
rho(i) = abs(Us);
% 清除旧的图形(如果需要的话)
cla; % 清除当前坐标轴的内容
% 绘制新的图形
polarplot(theta(1:i), rho(1:i), 'r-'); % 使用红色线绘制当前数据点
drawnow; % 更新图形
pause(0.01); % 暂停一小段时间以创建动画效果
end
|