资源简介
使用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
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论