画N个不相交 不包含的圆

来源:百度知道 编辑:UC知道 时间:2024/06/01 21:18:57
先画一个大圆~然后在里面 随机画N(用inputbox输入值)个不相交 不包含的圆 如有不明白 我在补充~
Private Sub Command1_Click()
Const PI = 3.14159265
Circle (3500, 1500), 1000, , ¨CPI / 2, ¨CPI / 3

End Sub
不是有这种吗?这种画出来就很圆 这个才对

没有圆周率这个说法,vb的circle语句用一个长宽比来控制椭圆率,你可以把
Me.Circle (Cir(I).X, Cir(I).Y), Cir(I).R, Me.FillColor
这句话改成
Me.Circle (Cir(I).X, Cir(I).Y), Cir(I).R, Me.FillColor ,,,1.2
或者
Me.Circle (Cir(I).X, Cir(I).Y), Cir(I).R, Me.FillColor ,,,0.8
试试

在我的电脑上运行没有发现椭圆的情况,修改如下:问下你这个是用来做什么的?

Private Type Cir
X As Integer
Y As Integer
R As Integer
End Type

'生成一个圆参数
Private Function GetACir(Wid As Integer, Hgt As Integer, R As Integer) As Cir
Dim CirR As Integer

Do
GetACir.X = Int(Rnd * Wid)
GetACir.Y = Int(Rnd * (Hgt - 1200)) + 300
Loop While (Wid / 2 - GetACir.X) ^ 2 + (Hgt / 2 - 300 - GetACir.Y) ^ 2 >= R ^ 2 '判断坐标是否在圆内

CirR = Sqr((Wid / 2 - GetACir.X) ^ 2 + (Hgt / 2 - 300 - GetACir.Y) ^ 2)
GetACir.R = Int(Rnd * Abs(R - CirR)) '生成圆半径
End Function

Private Sub Form_Click()
Dim Wid As Integer, Hgt As Integer
Dim CenX As