%1)在指定圆的最小外切正方形内均匀布n个点
%2)删除圆外的m个点
%3)重复1、2步骤,每次重复1时的布置点数n为上岁做一次删除点数m
%因为正方形的面积与晌蠢圆面积之比为pi/4约宴雀陪为0.75
%循环第二次时删除的点数m就仅为0.0625*需要点数,收敛快。
n=1000%总点数
r=5%半径
x=2*r*rand(1,n)-r%开始构造随机点
y=2*r*rand(1,n)-r
index=find(x.^2+y.^2>r.^2)
len=length(index)
x(index)=[]
y(index)=[]
while len
xt=2*r*rand(1,len)-r
yt=2*r*rand(1,len)-r
index=find(xt.^2+yt.^2>r.^2)
len=length(index)
xt(index)=[]
yt(index)=[]
x=[x xt]
y=[y yt]
end
plot(x,y,'ro')
axis equal
求采纳为满意回答。
import java.applet.Appletimport java.awt.Color
import java.awt.Font
import java.awt.Graphics
import java.util.Random
public class Number8 extends Applet{
int x,y //圆的位置
int W_H //圆的大小
int R,G,B//圆的颜色
Random rd = new Random()
public void init(){
this.resize(400, 300)
}
public void paint(Graphics g){
while ( true ){
W_H = rd.nextInt(100)
x = rd.nextInt(this.getWidth())
y = rd.nextInt(this.getHeight())
R = rd.nextInt(255)
G = rd.nextInt(255)
B = rd.nextInt(255)
g.setColor(Color.white)
g.fillRect(0,0,this.getWidth(),this.getHeight())
Color color = new Color(R,G,B)
g.setColor(color)
g.fillArc(x,y,W_H,W_H,0,360)
try {
Thread.sleep(500)
} catch (InterruptedException e) {
e.printStackTrace()
}
}
}
}
朋友,上面的程序实现了你说的功能,你可以运行一下,看看效果,我给你运行过了,呵呵。
要是可携宏者以的话,记得多给我加分呀,呵呵,上辩薯面是调试通绝老过的!!!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)