Тема: выбор объектов внутри круга

помогите пожалуйста кусочком кода...
есть окружность, в ней в нутри есть различные примитивы.
надо их всех выбрать (только те, что полностью умещаются в границах окружности)

Re: выбор объектов внутри круга

ну поможите пожалуйста :)
ншел метод выбор внутри контура, контур точками...
Можно конечно круг разбивать на точки, и их в выбор засылать, но как то вроде не хоршо...
разные диаметры, разные "поля"

Re: выбор объектов внутри круга

> ssn
Единственный метод - разбивать окружность
на сегменты и затем выбирать
А что тут плохого?
Можно разбить на достаточно большое количество
сегментов и использовать тот же метод что
ты нашел
~'J'~

Re: выбор объектов внутри круга

> Fatty
Для образца:

''~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~''
Function DivPoints(cent As Variant, rad As Double, num As Long) As Variant
Dim varpt As Variant
Dim ang As Double, delta As Double
Dim pi As Double, i As Long, j As Long
ReDim nodes(((num + 1) * 3) - 1) As Double
pi = Atn(1#) * 4
delta = 360# / num
ang = 0#
For i = 0 To num
ang = delta * i
ang = (ang * pi) / 180
varpt = ThisDrawing.Utility.PolarPoint(cent, ang, rad)
nodes(j) = CDbl(varpt(0))
nodes(j + 1) = CDbl(varpt(1))
nodes(j + 2) = CDbl(varpt(2))
j = j + 3
Next i
DivPoints = nodes()
End Function
''~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~''
Sub test()
Dim oent As AcadEntity
Dim cir As AcadCircle
Dim p
On Error GoTo Error_Control
ThisDrawing.Utility.GetEntity oent, p, vbCr & "Select circle"
If TypeOf oent Is AcadCircle Then
Set cir = oent
Dim cp, r As Double, num As Long
cp = cir.Center
r = cir.Radius
num = 256
Dim points() As Double
points = DivPoints(cp, r, num)
'ThisDrawing.ModelSpace.AddPolyline points '// for debug only
Dim sset As AcadSelectionSet
Set sset = ThisDrawing.SelectionSets.Add("Dummy")
sset.SelectByPolygon acSelectionSetWindowPolygon, points
MsgBox "Selected: " & sset.Count & " objects"
Else
MsgBox "You missed or this isn't a circle"
End If
Exit_Here:
ThisDrawing.SelectionSets("Dummy").Delete
Exit Sub
Error_Control:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
Resume Exit_Here
End Sub
''~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~''

~'J'~

Re: выбор объектов внутри круга

а что такое в коде #?

Re: выбор объектов внутри круга

> ssn
Ну ты блин даешь...
Набери 0.0 в редакторе
~'J'~

Re: выбор объектов внутри круга

хорошая функция Utility.PolarPoint :)
а то я хотел эти точки получать через доп. построения (вращать линию и снимать точки пересечения с окружностью)
а примерно какое количество точек будет критично для устойчивой работы программы?
ещё вопрос.. надо бы его в отдельную ветку, но кажется где то это уже было, не могу найти...
про ТРИМ в ВБА

Re: выбор объектов внутри круга

ха ха ха...
блин...
как то я... по поводу #..
косичок :)
ну да ладно, нам некого стесняться :)

Re: выбор объектов внутри круга

ай.. чуть не забыл..
спасибо за пример. :)

Re: выбор объектов внутри круга

ещё один глупый вопрос..
а чем тогад отличается 0 от 0.0 (0.#)?
блин, привык уже на форумах есть возможность править сообщения, тут как то нехорошо...

Re: выбор объектов внутри круга

> ssn
Да собственно для типа Double можно ноль после
точки опускать, где это не нужно
Но, например, для Atn(1#) это как раз на месте
хотя можно объявлять число Pi как константу
скажем с 8-ю знаками после запятой, результат
будет допустимый
~'J'~