资源简介
使用MATLAB随机生成圆孔.................................................................................................................
代码片段和文件信息
clc;clear;
close all;
N=3; %填充N个圆
b=round(3+4*rand(1N)); %30个圆半径在2~7之间(这里用随机数产生)
S=[200150]; %区域大小
aa = S(1);
bb = S(2);
S1=[000bbaa];
S2=[bbaa000];
%以上是给定的条件,根据自己的数据给出
%不过根据半径数据的大小,N不能太大
%要不然可能要化很多时间,或者找不到填充位置进入死循环
p=b(1)+(S-2*b(1)).*rand(12);%产生一个随机点
A=p‘; %第一点坐标记录进矩阵A中
t=0:4:360;
plot([0 200 200 0 0][0 0 150 150 0]);hold on %画区域方框
for ii=2:N
p=b(ii)+(S-2*b(ii)).*rand(12);%产生一个新随机点
while any((A(1:)-p(1)).^2+(A(2:)-p(2)).^2<((b(1:ii-1)+b(ii)).^2))
p=b(ii)+(S-2*b(ii)).*rand(12);
end %根据距离判断新的点是否和所有旧的点距离都满足条件
%如果有一点不满足条件,重新生成随机点,知道完全满足条件
patch(p(1)+b(ii)*cosd(t)p(2)+b(ii)*sind(t)‘r‘);%填充一个圆
A=[Ap‘]; %保存新的点到矩阵A中
end
hold off
axis equal
axis([0 200 0 150]);
A=[b;A];
%最终A是3xN的矩阵,第一行是半径,第二行是x坐标,第三行是y坐标
%% 画外框
fid=fopen(‘ss.scr‘‘w‘);
fprintf(fid‘line\n‘);
fprintf(fid‘%g%g\n‘S1S2);
fprintf(fid‘c\n‘);
%% 画圆
for j=1:N
x = A(2j);
y = A(3j);
r = A(1j);
fprintf(fid‘circle ‘);
fprintf(fid‘%g%g %g\n‘xyr);
end
fclose(fid);属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1300 2020-10-09 14:50 circle.m
相关资源
- 四旋翼MATLAB仿真文件+实验报告
- 串行级联cpm系统MATLAB仿真
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
川公网安备 51152502000135号
评论
共有 条评论