Matlab 版 (精华区)
发信人: zjliu (秋天的萝卜), 信区: Matlab
标 题: [合集]请教一个画随机点的问题
发信站: 哈工大紫丁香 (2003年05月16日16:44:52 星期五), 站内信件
────────────────────────────────────────
tanyaping (chuanfeng ) 于 2003年04月26日10:15:16 星期六 说道:
如何实现如下功能:
1.在一个圆上随机出现若干个点;
2.这些点的大小和亮度按一定的规律(有小到大/由弱到强)变化;
哪位matlab高手能给一个简单的程序,或者给个提示也行,谢谢!
────────────────────────────────────────
zjliu (秋天的萝卜) 于 2003年04月26日10:27:39 星期六 说道:
1.
t=rand(1,200)*2*pi;
plot(cos(t),sin(t),'.');
2.
大小可用下面语句设置
plot(cos(t),sin(t),'.','markersize',3)
────────────────────────────────────────
tanyaping (chuanfeng ) 于 2003年04月26日11:06:21 星期六 说道:
谢谢,不过如何同时控制这些点的亮度呢?
────────────────────────────────────────
zjliu (秋天的萝卜) 于 2003年04月26日14:21:26 星期六 说道:
plot(cos(t),sin(t),'.','color',[0.5 0.5 0.6])
~~~~~~~~~~~~~~注意改变此三量就可
控制亮度
────────────────────────────────────────
tanyaping (chuanfeng ) 于 2003年04月27日10:09:18 星期天 说道:
我想要的随机点是一个出现一定的时间,再出现另一个点,而不是所有的点同时出现,怎
么实现啊?谢谢。
────────────────────────────────────────
zjliu (秋天的萝卜) 于 2003年04月27日10:17:05 星期天 说道:
利用循环
figure;
hold on
for k=1:200;
t=rand(1)*2*pi;
plot(cos(t),sin(t),'.','color',[0.5 0.5 0.6])
pause(2);
end
────────────────────────────────────────
tanyaping (chuanfeng ) 于 2003年04月29日10:03:19 星期二 说道:
还是接着上一次的问题问,不要烦哦:
1.能不能将你举例中控制亮度的[0.5 0.5 0.6]中的数值用变量替换,从而实现亮度的规律
变化;
2.另外,我想使出现随机点的圆的半径也有规律变化,也就是说在一个圆上出现若干个点之
后,接着在另一个(半径变小或变大了的)圆上再出现一定的随机点,可以怎样实现;
3.如何即时用鼠标取得一个随机点的大小\坐标\与圆心连线矢量的角度;
zjliu大哥,拜托指点,谢了!
────────────────────────────────────────
zjliu (秋天的萝卜) 于 2003年04月29日10:49:27 星期二 说道:
1.亮度的[0.5 0.5 0.6]中的数据你可以设置为随机数,
也可以让它直接等于你的随机点的位置。
2.圆的半径可这样控制:plot(r*cos(t),r*sin(t))
3.鼠标取点的坐标的命令是ginput
────────────────────────────────────────
tanyaping (chuanfeng ) 于 2003年04月29日15:06:20 星期二 说道:
由于刚学matlab,手头又没有资料,还是很多地方不太明白,而这个东西又急着用,所以我奢
望我将要实现的功能详细的描述出来,zjliu大哥能帮我列出一份程序清单,小弟不胜感激:
1.首先是要获得随机的若干(比如第一个圆上出现40个)点,这些点在一个圆上随机的出现,
而且这些点是一个接一个的出现,大小由小到大,亮度是由暗到亮;
2.当单击鼠标左键的时候,随机点出现暂停,取得最近一个点的坐标和矢量角度(与圆心的连
线在水平方向的夹角),然后单击右键保存刚才的数据到数据库(如excel)中,保存结束继续
出现随机点;
3.一个圆上的随机点个数满了以后,在另一个圆(半径按一定的规律变小)上接着出现若干
个(比如这个圆上出现35个)随机点,这些点也要像1一样由小到大由暗到亮变化;
4.如此循环下去,循环次数自定义(比如25次,即共在25个圆出现随机点);
5.附加可以随时退出;
────────────────────────────────────────
zjliu (秋天的萝卜) 于 Tue Apr 29 16:34:08 2003) 说道:
现在我很忙,晚上我试着给你些个程序吧
────────────────────────────────────────
zjliu (秋天的萝卜) 于 2003年04月29日21:25:14 星期二 说道:
答复tanyaping,要是完全实现你的要求,可能会很麻烦,
我这里只列出我现在知道的,我没有精力完全解决你的
问题,请原谅
1.下面这段程序可实现你的要求(.1)
Rd=25;
for k=1:40;
t=rand(1)*2*pi;
plot(Rd*cos(t),Rd*sin(t),'.','markersize',1+k/4,'color',...
[k/40 k/40 k/40]);
pause(1);
end
2.用鼠标控制程序暂停(你问题中的.2),我还不清楚怎么搞。关于这个我想
用gui应该可以实现,可能要麻烦些了。
3.你可用Rr=randperm(25);生成一系列的半径,循环1.中的语句
就可以实现(.3)了。
4.把程序的循环次数改变就可以实现你的要求(.4)了
5.退出程序可按如下两个键: ctrl + c
────────────────────────────────────────
tanyaping (chuanfeng ) 于 2003年04月30日07:58:59 星期三 说道:
zjliu大哥,多谢你的指点,不过由于我是matlab新手,又急着等这一段程序用,相信
我在有限的一段时间内也不能有多大效果,所以我想你如果不能帮我写一段,能否帮我
找一个圈内的朋友帮帮忙?恳请了!
────────────────────────────────────────
zjliu (秋天的萝卜) 于 2003年04月30日08:41:26 星期三 说道:
你可以先按我前面说的写一下程序,若遇到麻烦
再在这里讨论一下
────────────────────────────────────────
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.574毫秒