Krom
Зарегистрирован: 31.05.2012 Сообщения: 1
|
Добавлено: Чт Май 31, 2012 12:21 pm Заголовок сообщения: CreateCircle |
|
|
Здравствуйте. Помогите пожалуйста разобраться. Задача создать окружность с возможностью изменять радиус, изменяя значение в таблице.
С помощью вот такого кода научился создавать окружность в нужном месте и нужного радиуса:
Open Table "rad"
Insert Into rad (obj)
Values ( CreateCircle(-72, 42, 10000) )
Но я не могу найти как добавить в таблицу значение радиуса для последующего интерактивного редактирования. Буду очень благодарен за подсказку |
|
sysrepos
Зарегистрирован: 22.10.2012 Сообщения: 39
|
Добавлено: Вс Дек 02, 2012 5:52 pm Заголовок сообщения: |
|
|
инструмент, который изменяет радиус выбранной окружности (по значению из таблицы, колонка sortcode)
Include "mapbasic.def"
Include "icons.def"
Declare Sub Main
Declare Sub clear
Declare Sub proc1
Declare Sub proc2
Sub Main
Set Distance Units "m"
set CoordSys NonEarth Units "m" Bounds (-2979, -5284) (10306, 5274)
Create ButtonPad "Мои Кнопки" As pushButton
Icon MI_ICON_arrow
Calling proc2
HelpMsg "proc2"
pushButton
Icon MI_ICON_ZOOM_QUESTION
Calling clear
HelpMsg "clear"
show
End Sub
Sub proc2
dim i as integer
dim vtt as string
dim kolonka as alias
dim fx, fy as float
dim kol as integer
dim ob as object
dim tekrad, zr, dr as float
dim minx1, miny1, maxx1, maxy1 as float
dim minx2, miny2, maxx2, maxy2 as float
vtt=tableinfo(1,tab_info_name)
kolonka=str$(vtt)+"."+"obj"
Select * From vtt
Where str$(kolonka)="ellipse" into q0
kol=tableinfo(q0,tab_info_nrows)
for i=1 to kol
select * from q0 where rowid=i into q1
fetch first from q1
ob=q1.obj
tekrad=abs(ObjectGeography( ob,obj_geo_maxx)-ObjectGeography( ob,obj_geo_minx))/2
print "текущий радиус "+tekrad
zr=q1.sortcode
print "заданный радиус "+zr
print ""
dr=zr-tekrad
minx1=ObjectGeography( ob,obj_geo_minx)
miny1=ObjectGeography( ob,obj_geo_miny)
maxx1=ObjectGeography( ob,obj_geo_maxx)
maxy1=ObjectGeography( ob,obj_geo_maxy)
minx2=minx1-dr
miny2=miny1-dr
maxx2=maxx1+dr
maxy2=maxy1+dr
alter object ob
Geography OBJ_GEO_MINX, minx2
alter object ob
Geography OBJ_GEO_MINy, miny2
alter object ob
Geography OBJ_GEO_maxX, maxx2
alter object ob
Geography OBJ_GEO_maxy, maxy2
update q1 set object=ob
next
End Sub
Sub clear
print chr$(12)
End Sub |
|