Страница 1 из 1

Cоздать полигональную тему с сектором круга

Добавлено: 28 авг 2008, 11:58
Sofiya
Только-только начала изучать Avenue.

Мне необходимо создать полигональную тему с сектором круга. Круг создала, нашла функцию Split. Только в функции SplitTool с пользовательской линией срабатывает, а с заданной линией никак не работает.

Здесь наверное есть знающие люди. Помогите если можно кодом.

Re: Cоздать полигональную тему с сектором круга

Добавлено: 29 авг 2008, 02:50
Максим Дубинин
приведите свой код для начала
тему я переименовал

Re: Cоздать полигональную тему с сектором круга

Добавлено: 13 сен 2008, 10:50
Sofiya
'**Создаю новую тему с кругом
tbl = FTab.MakeNew("F:\AXOV\Test\test.shp".AsFileName, Polygon)

theTheme = FTheme.Make(tbl)
shpField = tbl.FindField("Shape")
fields = List.Make
fields.Add(Field.Make("IDS", #FIELD_SHORT, 4, 0))
tbl.AddFields(fields)

'** Обхожу таблицу в поисках нужной точки
for each rec1 in aFTab
if (aFTab.ReturnValue(townField, rec1)=townValue) then
rec = tbl.AddRecord
g = aFTab.ReturnValue(shpField1, rec1)
x = g.Getx
y = g.Gety
theCircle = Circle.Make(x@y, r)

tbl.SetValue( shpField, rec, theCircle.AsPolygon )

end
end

'**Добавляю новую тему
theView.AddTheme(theTheme)
theTheme.SetVisible(TRUE)
theTheme.SetActive (TRUE)
theField = theTheme.GetFTab.FindField("Shape")
theType = theField.GetType

x1 = x-(r+0.1)
x2 = x+(r+0.1)
y1 = y
y2 = y
theView.SetEditableTheme(theTheme)

theTheme.GetFtab.BeginTransaction
l = PolyLine.Make( {{x1@y1, x@y}, {x@y, x2@y2}})

gl = GraphicShape.Make(l)
theTheme.Split(l)

theTheme.GetFtab.EndTransaction
theTheme.StopEditing(TRUE)
theView.SetEditableTheme(NIL)
theView.GetGraphics.RemoveGraphic(l1)

av.GetProject.SetModified(true)
end