作者ejialan (eji)
看板MATLAB
标题Re: [讨论] 请教在限定区域内随机选点问题
时间Tue May 14 14:59:48 2013
※ 引述《wwe00222 (hao)》之铭言:
: http://imgur.com/ByfHnxS
: 我想在一个三角型区域内(不能超出),随机选一个点,点的位置如图中安排所表示
: 共14个点
: 每个点(x1,y1)之间的间隔是δ=25mm
: 能不能建立一条数学式当我输入一个δ就能自动建立出点(x1,y1)
: 并随机选取
: 小弟想法是不断使用 if .....elseif....elseif.....end 去判断
: 但试了结果都不做不出来
: 请教有人能帮忙解答吗 谢谢!!
我的想法是先把格子点全部产生
用inpolygon指令把三角形内部点挑出
再用randsample随机取一个三角形内部点的指标
程式码如下
trix=[0 125 0 0];%三角形顶点x座标
triy=[0 0 200 0];%三角形顶点y座标
delta=25;
x=delta:delta:125-delta;
y=delta:delta:200-delta;
[xx,yy]=meshgrid(x,y);%产生格子点
in=inpolygon(xx,yy,trix,triy);%判断格子点是否在三角形内
xx=xx(in);
yy=yy(in);
L=length(xx);
id=randsample(L,1);%随机产生一个指标
xp=xx(id);
yp=yy(id);
plot(trix,triy,xx,yy,'ro',xp,yp,'k+')
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.121.146.175
1F:推 wwe00222:谢谢!!!! 05/15 12:02