matlab随机圆的生成方法

matlab随机圆的生成方法,第1张

%算法为:

%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.Applet

import 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()

}

}

}

}

朋友,上面的程序实现了你说的功能,你可以运行一下,看看效果,我给你运行过了,呵呵。

要是可携宏者以的话,记得多给我加分呀,呵呵,上辩薯面是调试通绝老过的!!!!!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12362037.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存