kevinchan 发表于 2004-5-24 20:31:00

做了很久也解决不了的问题

今天做的头疼死了,请大家指点一下如果做一条直线上做间距递增的圆?


O               O                               O                                                        O                                                       O                                                                               O                                                                               O

mikewolf2k 发表于 2004-5-24 20:43:00

很简单嘛,根据要求算出圆心坐标。

kevinchan 发表于 2004-5-24 21:32:00

是呀,用VBA怎样编程?

mikewolf2k 发表于 2004-5-24 21:36:00

你的直线方程,递增间距,起始位置等等,都得告诉别人啊。

kevinchan 发表于 2004-5-24 21:47:00

递增间距就是要根据长度和最小间距,最大间距来设定.可我不知道怎么弄了.


以下是间距不变,直径递增的列子:


Sub DCircle()<BR>                       Dim Dist As Double<BR>                       Dim Cnt As Integer<BR>                       Dim MinR As Double<BR>                       Dim MaxR As Double<BR>                       Dim Pnt As Variant<BR>                       Dim Dir As Double<BR>                       On Error Resume Next<BR>                       With ThisDrawing.Utility<BR>                                                       Pnt = .GetPoint(, vbCr &amp; "&Ccedil;&euml;&Egrave;·&para;¨&AElig;&eth;&Ecirc;&frac14;&micro;&atilde;&Icirc;&raquo;&Ouml;&Atilde;&pound;&ordm;")<BR>                                                       Dir = .GetAngle(Pnt, vbCr &amp; "&Ccedil;&euml;&Egrave;·&para;¨·&frac12;&Iuml;ò&pound;&ordm;")<BR>                                                       Dist = .GetDistance(Pnt, vbCr &amp; "&Ccedil;&euml;&Ecirc;&auml;&Egrave;&euml;&frac14;&auml;&frac34;à:")<BR>                                                       MinR = .GetDistance(Pnt, vbCr &amp; "&Ccedil;&euml;&Ecirc;&auml;&Egrave;&euml;×&icirc;&ETH;&iexcl;&Ocirc;&sup2;&Ouml;±&frac34;&para;:") / 2<BR>                                                       MaxR = .GetDistance(Pnt, vbCr &amp; "&Ccedil;&euml;&Ecirc;&auml;&Egrave;&euml;×&icirc;&acute;ó&Ocirc;&sup2;&Ouml;±&frac34;&para;:") / 2<BR>                                                       Cnt = .GetInteger(vbCr &amp; "&Ccedil;&euml;&Ecirc;&auml;&Egrave;&euml;&Aring;&Aring;&Aacute;&ETH;&cedil;&ouml;&Ecirc;&yacute;&pound;&ordm;")<BR>                       End With<BR>                               Dim i As Integer<BR>                       Dim Center As Variant<BR>                       Dim radius As Double<BR>                       For i = 0 To Cnt - 1<BR>                                                       Center = ThisDrawing.Utility.PolarPoint(Pnt, Dir, Dist * i)<BR>                                                       radius = MinR + ((MaxR - MinR) / (Cnt - 1)) * i<BR>                                                       ThisDrawing.ModelSpace.AddCircle Center, radius<BR>                       Next i<BR>End Sub

mikewolf2k 发表于 2004-5-24 21:50:00

你到底哪个量是不定的?
页: [1]
查看完整版本: 做了很久也解决不了的问题