提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
MATLAB+大学物理,力的合成与分解示意图,使用quiver函数绘制矢量箭杆
提示:以下是本篇文章正文内容,下面案例可供参考
一、程序效果图
程序运行后如图:
二、使用步骤
1.设置力的大小和方向
代码如下(示例):
clear,close all
% 输入力的大小和方向
F1_magnitude = 5; % 第一个力的大小
F1_angle = 30; % 第一个力的方向(相对于x轴的角度,单位:度)
F2_magnitude = 8; % 第二个力的大小
F2_angle = 120; % 第二个力的方向(相对于x轴的角度,单位:度)
% 将角度转换为弧度
F1_angle_rad = deg2rad(F1_angle);
F2_angle_rad = deg2rad(F2_angle);
% 合成力的矢量
F1_vector = F1_magnitude * [cos(F1_angle_rad), sin(F1_angle_rad)];
F2_vector = F2_magnitude * [cos(F2_angle_rad), sin(F2_angle_rad)];
% 总合成力
F_total = F1_vector + F2_vector;
2.图窗绘图
代码如下(示例):
% 创建一个新的图形窗口
figure;
% 绘制力1箭杆
quiver(0, 0, F1_vector(1), F1_vector(2), 0, 'b', 'LineWidth', 2);
hold on;
% 绘制力2箭杆
quiver(0, 0, F2_vector(1), F2_vector(2), 0, 'r', 'LineWidth', 2);
% 绘制合成力箭杆
quiver(0, 0, F_total(1), F_total(2), 0, 'g', 'LineWidth', 2);
% 绘制平行四边形
plot([0, F1_vector(1)], [0, F1_vector(2)], 'k--');
plot([F1_vector(1), F_total(1)], [F1_vector(2), F_total(2)], 'k--');
plot([F2_vector(1), F_total(1)], [F2_vector(2), F_total(2)], 'k--');
%绘制投影线
% projection_F1 = F1_vector - dot(F1_vector, F2_vector)/norm(F2_vector)^2 * F2_vector;%F1-F2
% quiver(0, 0, projection_F1(1), projection_F1(2), 0, 'm--', 'LineWidth', 1);
% projection_F2 = F2_vector - dot(F1_vector, F2_vector)/norm(F1_vector)^2 * F1_vector;
% quiver(0, 0, projection_F2(1), projection_F2(2), 0, 'c--', 'LineWidth', 1);
3.标注
% 标注夹角
angle_rad = acos(dot(F1_vector, F2_vector) / (norm(F1_vector) * norm(F2_vector)));
angle_deg = rad2deg(angle_rad);
text(0.5, -0.5, ['夹角: ', num2str(angle_deg), ' 度'], 'FontSize', 10);
% 标注矢量长度关系
text(F1_vector(1)/2, F1_vector(2)/2, ['F1/F2 = ', num2str(F1_magnitude/F2_magnitude)], 'FontSize', 10);
% 设置图形属性
axis equal;
grid on;
title('力矢量的合成与分解(平行四边形法则)made by光电面壁人');
xlabel('X轴');
ylabel('Y轴');
% 添加图例
legend('力1', '力2', '合成力', 'Location', 'Best');
% 显示图形
hold off;
总结
在MATLAB中绘制矢量箭杆可以用quiver函数