如何生成随机点和固定半径的圆使用Matlab

7视图(30天)
要有4生成随机点就有坐标给出(x1, y1) (x2, y2) (x3, y3) (x4, y4)。情节为中心的圆在每个50与固定半径的4点说。在Matlab如何编写一个简单的代码吗

答案(1)

图像分析
图像分析 2013年2月1日
试试我的演示:
% m文件将多个小圈在一个大圈。
%清理
关闭所有;
clc;
字形大小= 15;
%初始化一些参数。
numberOfSmallCircles = 25;%的小圆圈
smallCircleOutsideValue = 0.2;
smallCircleInsideValue = 0.8;
smallCircleRadius = 25;%小圆半径
bigImageWidth = 500;
bigImageHeight = 500;%正方形区域0 f 500 * 500
bigCircleRadius = 250;%大圆半径
%初始化一个图像一个大圆。
bigCircleImage = 0 (bigImageHeight bigImageWidth);
(x, y) = meshgrid (1: bigImageWidth, 1: bigImageHeight);
bigCircleImage ((x - bigImageWidth / 2)。^ 2 + (y - bigImageHeight / 2)。^ 2 < = bigCircleRadius。^ 2) = 1;
%显示在左上角的阴谋。
次要情节(3,2,1);
imshow (bigCircleImage []);
标题(“大圆面具”,“字形大小”、字形大小);
集(gcf,“位置”get (0,“拉”));%最大化图。
%初始化一个图像举行一个小圆。
smallCircleImage = 0 (2 * smallCircleRadius, 2 * smallCircleRadius);
(x, y) = meshgrid (1: smallCircleRadius * 2, 1: smallCircleRadius * 2);
singleCircleImage = 0 (2 * smallCircleRadius, 2 * smallCircleRadius);
singleCircleImage ((x - smallCircleRadius)。^ 2 + (y - smallCircleRadius)。^ 2 < = smallCircleRadius。^ 2) = smallCircleInsideValue;
%显示在右上角。
次要情节(3 2 2);
imshow (singleCircleImage []);
标题(“单一的小圆(缩放以适合),“字形大小”、字形大小);
singleWidth =大小(singleCircleImage, 2);
singleHeight =大小(singleCircleImage, 1);
%得到随机坐标在大图像
%将左上角的小圆。
widthThatWillFit = bigImageWidth - 2 * smallCircleRadius;
heightThatWillFit = bigImageHeight - 2 * smallCircleRadius;
smallUpperLeftX = widthThatWillFit *兰德(numberOfSmallCircles, 1);
smallUpperLeftY = heightThatWillFit *兰德(numberOfSmallCircles, 1);
%初始化输出图像举行许多小重叠的圆圈。
manySmallCircles = 0 (bigImageHeight bigImageWidth);
%小圆一个接一个的地方。
k = 1: numberOfSmallCircles
%找到在大广场形象,我们要添加一个小圆。
x1 = int16 (smallUpperLeftX (k));
日元= int16 (smallUpperLeftY (k));
x2 = int16 (x1 + singleWidth - 1);
y2 = int16 (y1 + singleHeight - 1);
%在一个小圈子里添加到现有的大图像。
manySmallCircles (x1, y1, y2: x2) = manySmallCircles (x1, y1, y2: x2) + singleCircleImage;
结束
%在圈子外面的颜色。
manySmallCircles (manySmallCircles = = 0) = smallCircleOutsideValue;
%显示在左下角的阴谋。
次要情节(3、2、3);
imshow (manySmallCircles);
标题(“许多小重叠的圆圈”,“字形大小”、字形大小);
%大圆面具乘以许多小圆圈图像剪辑
%的小圆圈之外大圈。
maskedByBigCircle = bigCircleImage。* manySmallCircles;
%显示在右下角的阴谋。
次要情节(2、4);
imshow (maskedByBigCircle);
标题(“许多小圆圈掩饰了大圆”,“字形大小”、字形大小);
%的直方图并显示在最后一行。
次要情节(3 2 6);
嘘(maskedByBigCircle (:));
网格;
标题(直方图的图像在大圆,“字形大小”、字形大小);

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!