声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1997|回复: 2

[综合讨论] voronoi布点

[复制链接]
发表于 2009-12-30 23:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我想要控制voronoi图形核点的密集程度,看到一个文献里面说“首先我们在面积为A的正方形内随机布N个形核点,这些点的坐标由均匀分布的随机序列得到。第一个点的坐标被指定后,从随机序列取得每一个后序的点被放在排列中,要求这样的点到任何已有点的距离必须不小于允许的最小值d,在给定个数的连续的点被拒绝后,认为排列是满的。”我搞了半天也没有实现这个效果,那个判断与已有点的距离的循环嵌套编的总是不对,总是无法实现判断的时候再次从已有的第一个点开始判断(比如:比较到和已经存在的第3个点的距离小于了最小值,等新插入的点的坐标付了新值后,循环还是从第3个点开始比较,没有从第一个点开始比较)。那位好心人帮个忙吧,谢谢了。
回复
分享到:

使用道具 举报

发表于 2009-12-30 23:59 | 显示全部楼层
个人水平专业有限, 亦非编程问题! 同待高人路过
 楼主| 发表于 2010-1-2 08:30 | 显示全部楼层

回复 楼主 supersonics 的帖子

现在我把我的程序贴出来,大家帮我看看,我运行完后无法得到所有点和点之间的距离。当形核点个数为8时,应该有28个点和点之间的距离,可我得到的distance的维数为1*23,而且c怎么等于1了,不可理解。大家一定帮帮忙,谢谢大家了。

clear all;
rand('state',5);
x(1)=0;%定义第一个点的横坐标
y(1)=0;%定义第一个点的纵坐标
n=8;%形核点个数
N=n^2;
dpoint=0; %求点和点的距离变量初始化
L=1;
A=L^2;
k=0.7;%密集程度系数
c=0;%点和点距离的个数,即总共有多少个距离
dmax=(2*A/(N*3^0.5))^0.5;
dmin=k*dmax;%点和点之间的最小距离的限定值
mindistance=0;%点和点之间的最小距离变量初始化
for i=2:n
    x(i)=rand(1,1);%随机取第i点的横坐标
    y(i)=rand(1,1);%随机取第i点的纵坐标
    for j=1:i-1
        dpoint(j)=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2);%求第i点到已有点(j点)的距离
        c=c+1;
        distance(1,c)=dpoint(j);%将任意两点的距离存储到距离向量里面
        mindistance=min(distance);%得到向量里面的最小值
        if mindistance<dmin %判断点和点之间的最小距离是否小于给定的最小值
            x(i)=rand(1,1);%重新取第i点的横坐标
            y(i)=rand(1,1);%重新取第i点的纵坐标
            c=c-j;%回退到这次循环开始前c的值;
            continue;
        end
    end
end
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 19:50 , Processed in 0.051880 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表