function main()
r=8; % 定义圆的半径
line_angle=30; % 定义直线的倾角,角度制(-90°至90°)
line_distance=1; %定义直线的间距
figure
set(gcf,'Unit','normalized')
set(gca,'Position',[0 0 1 1])
hold on
plot([-r/2,r/2],[0,0],'Color','w','LineWidth',2) %绘制十字中心线
plot([0,0],[-r/2,r/2],'Color','w','LineWidth',2) %绘制十字中心线
axis([-10 10 -10 10]) % 设置x轴和y轴的坐标范围
axis equal
set(gcf,'Color','black') % 设置背景为黑色
set(gca,'Color','black') % 设置背景为黑色
set(gcf,'InvertHardcopy','off')
print('-dbmp',gcf) % 保存成bmp图片
figure
set(gcf,'Unit','normalized')
set(gca,'Position',[0 0 1 1])
circle_plot(r,line_angle,line_distance) % 绘制第一张图
axis([-10 10 -10 10]) % 设置x轴和y轴的坐标范围
set(gcf,'Color','black') % 设置背景为黑色
set(gca,'Color','black') % 设置背景为黑色
set(gcf,'InvertHardcopy','off')
print('-dbmp',gcf) % 保存成bmp图片
figure
set(gcf,'Unit','normalized')
set(gca,'Position',[0 0 1 1])
circle_plot(r,line_angle,line_distance) % 绘制第二张图
circle_plot(r,line_angle-90,line_distance) % 绘制出垂直的斜线
axis([-10 10 -10 10]) % 设置x轴和y轴的坐标范围
set(gcf,'Color','black') % 设置背景为黑色
set(gca,'Color','black') % 设置背景为黑色
set(gcf,'InvertHardcopy','off')
print('-dbmp',gcf) % 保存成bmp图片
figure
set(gcf,'Unit','normalized')
set(gca,'Position',[0 0 1 1])
circle_plot(r,line_angle-90,line_distance) % 绘制第三张图,垂直的斜线
axis([-10 10 -10 10]) % 设置x轴和y轴的坐标范围
set(gcf,'Color','black') % 设置背景为黑色
set(gca,'Color','black') % 设置背景为黑色
set(gcf,'InvertHardcopy','off')
print('-dbmp',gcf) % 保存成bmp图片
msgbox('MATLAB编程答疑,请加QQ: 1530497909','MATLAB答疑','help')
web http://url.cn/NSFcAs -browser
end
function circle_plot(r,line_angle,line_distance)
% 该函数用于绘制圆形以及斜线
% r:定义半径
% line_angle:定义直线角度
% line_distance:定义直线距离
if (line_angle==90)||(line_angle==-90) % 如果直线的倾角为90°或者-90°
theta=0:0.001:2*pi;
x=r*cos(theta);
y=r*sin(theta);
plot(x,y,'Color','w','LineWidth',2) % 绘制圆形
axis equal
hold on
for x=-r:line_distance:r % 每条斜线与圆的交点x坐标
y1=sqrt(r^2-x^2); % 计算出每条斜线与圆的交点y坐标
y2=-sqrt(r^2-x^2); % 计算出每条斜线与圆的交点y坐标
plot([x,x],[y1,y2],'Color','w','LineWidth',2) % 绘制斜线
end
else % 直线倾角不为90°或者-90°
theta=0:0.005:2*pi;
x=r*cos(theta);
y=r*sin(theta);
plot(x,y,'Color','w','LineWidth',2) % 绘制圆形
axis equal
hold on
line_angle=deg2rad(line_angle);
k=tan(line_angle);
max_b=r/abs(sin(line_angle-pi/2));
line_distance=line_distance/(abs(sin(line_angle-pi/2)));
for b=-max_b:line_distance:max_b
A=k^2+1;
B=2*k*b;
C=b^2-r^2;
x1=(-B+sqrt(B^2-4*A*C))/(2*A); % 计算出每条斜线与圆的交点x坐标(求解一元二次方程得到)
x2=(-B-sqrt(B^2-4*A*C))/(2*A); % 计算出每条斜线与圆的交点x坐标(求解一元二次方程得到)
y1=k*x1+b; % 计算出每条斜线与圆的交点y坐标
y2=k*x2+b; % 计算出每条斜线与圆的交点y坐标
plot([x1,x2],[y1,y2],'Color','w','LineWidth',2) % 绘制斜线
end
end
end


阿里matlab建模师
- 粉丝: 5004
- 资源: 2908
最新资源
- ECG信号PQRST峰值检测Matlab工具箱.rar
- LSHADE-CnEpSin算法通过自然生存方法(NSM)进行了改进,并将其应用于频率受限桁架问题的应用Matlab代码.rar
- LIBDAR是一个Matlab工具箱,用于计算激光诱导的气泡动力学、模拟声辐射以及跟踪能量分配.rar
- Im2mesh的图形用户界面版本。基于二维多相图像生成有限元网格,具有折线平滑和简化功能.rar
- L形三联块填充4x4国际象棋棋盘Matlab代码.rar
- MAG数据可视化工具箱.rar
- MATLAB 和 Simulink 工具用于车辆运动学、可视化和传感器模拟 matlab代码.rar
- MATLAB程序实现了一个使用自适应基例切换和启发式小数因子缓存的DIT基-2快速傅里叶变换(FFT).rar
- Matlab代码用于分数阶系统的李雅普诺夫指数.rar
- Matlab代码用于非通约分数阶系统的LE.rar
- Matlab函数绘制了稀疏相控阵列的模式.rar
- MVDR波束形成器带干扰 matlab代码.rar
- PDF文档和多个MATLAB函数,可用于在地理中心坐标和大地测量坐标之间进行转换.rar
- 按照Katz和Plotkin的公式,这段代码展示了在动态情况下尾流的影响Matlab代码.rar
- Simulink中的混合动力电动汽车模型.rar
- POFACETS计算网格化目标的单站或双站雷达截面积(RCS)Matlab代码 不能运行.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


