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建模师
- 粉丝: 4363
- 资源: 2852
最新资源
- 俞敏洪:企业的文化基因需要一开始就注入.docx
- 政钧企业文化诊断学之 :企业家个人文化力不足.docx
- STM32串口下载软件(FLYMCU)
- 红枣疏花机(含工程图sw18可编辑+cad)全套技术开发资料100%好用.zip
- 基于web的网上演唱会票务管理系统.doc
- Python面向对象.xmind
- 中职学校《Windows Server网络操作系统》课程标准及教学指导(2024年版)
- 基于java的物流信息网的设计与实现论文.doc
- 中职学校《Java程序设计》课程标准及教学指导(2024年版)
- Python面向对象进阶.xmind
- 中职学校《Android Studio程序设计》课程标准及教学指导(2024年版)
- ReST-MCTS∗: LLM Self-Training via Process Reward Guided Tree Search
- 基于java的音乐交流平台论文.doc
- pptssssssss
- 中职学校《物联网网关Qt程序编写》课程标准及教学指导(2024年版)
- 基于web的银行业务管理系统.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈