matlab中如何求出以一点为圆心画圆得到图像内的所有点的坐标
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/03/28 16:46:44
matlab中如何求出以一点为圆心画圆得到图像内的所有点的坐标
把这些点的所有坐标存入数组xy,假设圆心为(x0,y0)半径r,节点数为n,xy的第一列为x坐标,第二列为y坐标.代码如下
x0=1;y0=1;r=2;n=100;
xy=zeros(100,2);
h=2*pi/(n-1);
for i=1:n
xy(i,1)=x0+r*cos((i-1)*h);
xy(i,2)=y0+r*sin((i-1)*h);
end
plot(xy(:,1),xy(:,2))
axis equal
再问: h=2*pi/(n-1);这句是什么意思呢? 还有,现在已知的就只有圆心坐标和半径,并不知道里面有多少节点。
再答: 对于前者,h是角度坐标的步长。 对于后者,我不清楚你所遇到的实际问题是什么样的。能不能假设一个比较大的节点数,因为从理论上一个圆上的节点数是无穷大的,我们进行数值计算只要节点数足够多就可以了。
再问: 是这样的,我在做的实习题目是基于matlab的图像变形,我所说的圆形图像是在原图像上取一点P,以他为圆心,R为半径的圆形图像,对于数字图像,坐标都是整数,所以园内的节点肯定是有限的。
再答: 哦,这样的话,点的数目很明显应该由图片的像素点的大小来确定,像素点小则节点数多,图片也越清晰。然而这些都是无关紧要的,你只要将最后得到的坐标值人为取整,然后再删掉重复的节点就可以了。取整的命令如下,其中xy就是前面的数组。 xynew=round(xy)
再问: 可是我还是事先不知道节点数啊,如果半径很大,我要一个一个数节点数么?
再答: 恩你说的很对,可以一开始设置一个与半径有关的的量作为节点数如 n=10000*r,至于为什么取为线性关系,原因很简单——圆周公式,周长与半径成正比。前面的系数越大就越不会遗漏像素点,但是最后你需要删除的重复节点也多。
再问: 恩,谢谢你!我知道了,咱俩好像理解岔了,我试了一下你写的代码,这个方法只能得出这个圆形的圆周那条线上的点的坐标,我需要的是这个圆形区域内的所有点的坐标。
再答: 哦,那这样的话其实更简单。直接用下面的代码,其中 m,n为图片的长宽方向的像素点数目,x,y为圆心坐标,r为半径 m=300;n=300;x=50;y=50;r=10 xy=[x y]; for i=1:m for j=1:n if (i-x)^2+(j-y)^2
x0=1;y0=1;r=2;n=100;
xy=zeros(100,2);
h=2*pi/(n-1);
for i=1:n
xy(i,1)=x0+r*cos((i-1)*h);
xy(i,2)=y0+r*sin((i-1)*h);
end
plot(xy(:,1),xy(:,2))
axis equal
再问: h=2*pi/(n-1);这句是什么意思呢? 还有,现在已知的就只有圆心坐标和半径,并不知道里面有多少节点。
再答: 对于前者,h是角度坐标的步长。 对于后者,我不清楚你所遇到的实际问题是什么样的。能不能假设一个比较大的节点数,因为从理论上一个圆上的节点数是无穷大的,我们进行数值计算只要节点数足够多就可以了。
再问: 是这样的,我在做的实习题目是基于matlab的图像变形,我所说的圆形图像是在原图像上取一点P,以他为圆心,R为半径的圆形图像,对于数字图像,坐标都是整数,所以园内的节点肯定是有限的。
再答: 哦,这样的话,点的数目很明显应该由图片的像素点的大小来确定,像素点小则节点数多,图片也越清晰。然而这些都是无关紧要的,你只要将最后得到的坐标值人为取整,然后再删掉重复的节点就可以了。取整的命令如下,其中xy就是前面的数组。 xynew=round(xy)
再问: 可是我还是事先不知道节点数啊,如果半径很大,我要一个一个数节点数么?
再答: 恩你说的很对,可以一开始设置一个与半径有关的的量作为节点数如 n=10000*r,至于为什么取为线性关系,原因很简单——圆周公式,周长与半径成正比。前面的系数越大就越不会遗漏像素点,但是最后你需要删除的重复节点也多。
再问: 恩,谢谢你!我知道了,咱俩好像理解岔了,我试了一下你写的代码,这个方法只能得出这个圆形的圆周那条线上的点的坐标,我需要的是这个圆形区域内的所有点的坐标。
再答: 哦,那这样的话其实更简单。直接用下面的代码,其中 m,n为图片的长宽方向的像素点数目,x,y为圆心坐标,r为半径 m=300;n=300;x=50;y=50;r=10 xy=[x y]; for i=1:m for j=1:n if (i-x)^2+(j-y)^2
matlab中如何求出以一点为圆心画圆得到图像内的所有点的坐标
matlab:已知一幅图像某点的坐标,以此点为圆心,指定r为半径画圆,提取该区域图像,求具体方法.
C++里怎么判断一个点在圆内 已知A、B两点坐标,如何判定点A在以点B为圆心的圆里
matlab 图像处理 我在图像的每一个点上,以该店为圆心,画半径从1:20的圆,意思是每个点都画20个圆
如何在word中画以一点为圆心的圆
已知,如图,在平面直角坐标系中,点A的坐标为(0,2),点C为以坐标原点O为圆心,根号3为半径圆O上的一点,且AC=1,
已知空间三点坐标,如何以此确定一个圆体,并求出球体的半径和圆心坐标
如何将matlab得到的多张函数图像显示在一个坐标图像中? 就是函数图像参数改变,图像改变.
cad在测量放线中,测量员如何操作电子图纸可以获得由已知两点坐标求出的所有点坐标?
如图7,在平面直角坐标系中,点A的坐标为(0,-2),以点A为圆心,AO为半径画圆,直线Y=-
MATLAB如何画出一些离散的点的图像?就是一组坐标为(Xn,Yn)形式的点
经纬度坐标的ARCGIS文件中测量点之间距离,如何得到以“米”为单位的结果?