Построение квадратных полигонов вокруг точки
-
- Новоприбывший
- Сообщения: 12
- Зарегистрирован: 20 апр 2017, 13:00
- Репутация: 0
Построение квадратных полигонов вокруг точки
Здравствуйте, подскажите пожалуйста как можно построить идеальные квадраты (с заданной стороной) вокруг точки или последовательности точек. Пробовала через буферные зоны, но получается четырехугольники кривоватые (стороны не равны). И если можно ориентировать их вдоль линии... То есть, есть съемка ЛЭП, линия с точками (опорами) нужно вокруг каждой точечки построить квадратик, ищу варианты как упростить все это...Спасибо!
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Построение квадратных полигонов вокруг точки
обычно для этого делают стиль точек
-
- Новоприбывший
- Сообщения: 12
- Зарегистрирован: 20 апр 2017, 13:00
- Репутация: 0
Re: Построение квадратных полигонов вокруг точки
Не поняла вас, меня интересуют именно площадные объекты...trir писал(а):обычно для этого делают стиль точек
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Построение квадратных полигонов вокруг точки
интересно почему, какая СК слоя?но получается четырехугольники кривоватые (стороны не равны)
-
- Новоприбывший
- Сообщения: 12
- Зарегистрирован: 20 апр 2017, 13:00
- Репутация: 0
Re: Построение квадратных полигонов вокруг точки
МСК 66trir писал(а):интересно почему, какая СК слоя?но получается четырехугольники кривоватые (стороны не равны)
-
- Гуру
- Сообщения: 4057
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Построение квадратных полигонов вокруг точки
проще всего затащить вектор в R/Python, и там спокойно все руками нарисовать, и записать в текстовый MIF/MID.
-
- Новоприбывший
- Сообщения: 12
- Зарегистрирован: 20 апр 2017, 13:00
- Репутация: 0
Re: Построение квадратных полигонов вокруг точки
А что такое R/Python ?gamm писал(а):проще всего затащить вектор в R/Python, и там спокойно все руками нарисовать, и записать в текстовый MIF/MID.
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Построение квадратных полигонов вокруг точки
После таких сенсационных заявлений нам всем ничего другого не остаётся, как ждать от вас готовых решений хотя бы на одном из означенных выше продуктов.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Построение квадратных полигонов вокруг точки
это ЯПозначенных выше продуктов
Код: Выделить всё
CREATE FUNCTION [dbo].[Trans1]
(
@wpoint geometry,
@xy0point geometry,
@sina float,
@cosa float
)
RETURNS geometry
AS
BEGIN
declare @nx float;
declare @ny float;
set @nx = (@wpoint.STX - @xy0point.STX)*@cosa + (@wpoint.STY - @xy0point.STY)* @sina;
set @ny = -(@wpoint.STX - @xy0point.STX)*@sina + (@wpoint.STY - @xy0point.STY)* @cosa;
RETURN geometry::STGeomFromText('POINT(' + Str(@nx, 25, 5) + ' ' + Str(@ny, 25, 5) + ')', 0);
END
Код: Выделить всё
CREATE FUNCTION [dbo].[GetRect]
(
@p1 geometry,
@p2 geometry,
@size float
)
RETURNS geometry
AS
BEGIN
declare @r float;
set @r = @p1.STDistance(@p2);
declare @sina float;
declare @cosa float;
set @sina = (@p2.STY - @p1.STY)/@r;
set @cosa = (@p2.STX - @p1.STX)/@r;
DECLARE @pr1 geometry;
DECLARE @pr2 geometry;
DECLARE @pr3 geometry;
DECLARE @pr4 geometry;
SET @pr1 = [dbo].[Trans1](geometry::Point(@size, @size, 0), @p1, @sina, @cosa);
SET @pr2 = [dbo].[Trans1](geometry::Point(@size, -1*@size, 0), @p1, @sina, @cosa);
SET @pr3 = [dbo].[Trans1](geometry::Point(-1*@size, -1*@size, 0), @p1, @sina, @cosa);
SET @pr4 = [dbo].[Trans1](geometry::Point(-1*@size, @size, 0), @p1, @sina, @cosa);
DECLARE @pstr nvarchar(MAX);
set @pstr = '0x01030000000100000005000000';
set @pstr = @pstr + REPLACE(CONVERT(varchar(max), @pr1.STAsBinary(), 2), '0101000000', '')
set @pstr = @pstr + REPLACE(CONVERT(varchar(max), @pr2.STAsBinary(), 2), '0101000000', '')
set @pstr = @pstr + REPLACE(CONVERT(varchar(max), @pr3.STAsBinary(), 2), '0101000000', '')
set @pstr = @pstr + REPLACE(CONVERT(varchar(max), @pr4.STAsBinary(), 2), '0101000000', '')
set @pstr = @pstr + REPLACE(CONVERT(varchar(max), @pr1.STAsBinary(), 2), '0101000000', '')
DECLARE @tb varbinary(MAX);
set @tb = CONVERT(varbinary(MAX), @pstr, 1)
RETURN geometry::STGeomFromWKB(@tb , 0);
END
Код: Выделить всё
DECLARE @p1 geometry;
DECLARE @p2 geometry;
declare @size float;
set @size =11.1;
SET @p1 = geometry::STGeomFromText('POINT(1 1)', 0);
SET @p2 = geometry::STGeomFromText('POINT(10 15)', 0);
DECLARE @g geometry;
SET @g = [dbo].[GetRect](@p1, @p2, @size);
SELECT @g.STAsText();
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Построение квадратных полигонов вокруг точки
Спасибо, а то мужики-то и не знали.trir писал(а):это ЯПозначенных выше продуктов
Следующий вопрос: как топикстартеру применить ваш код на практике? Как я понял, в наличии набор TAB-файлов с точками.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
-
- Новоприбывший
- Сообщения: 12
- Зарегистрирован: 20 апр 2017, 13:00
- Репутация: 0
Re: Построение квадратных полигонов вокруг точки
Благодарю всех кто откликнулся, посоветовали сделать в автокаде, буду разбираться....
П.С. в R/Python, SQL, MapBasic не сильна, намсте)
П.С. в R/Python, SQL, MapBasic не сильна, намсте)
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Построение квадратных полигонов вокруг точки
на lisp'е?посоветовали сделать в автокаде
-
- Активный участник
- Сообщения: 160
- Зарегистрирован: 17 янв 2012, 18:51
- Репутация: 74
Re: Построение квадратных полигонов вокруг точки
Попробуйте. Хотя и написано достаточно давно, но кажется вполне работоспособно.
Направление задается движением мыши при нажатой ЛК.
Направление задается движением мыши при нажатой ЛК.
- Вложения
-
- SmallThings.rar
- (5.15 КБ) 383 скачивания
Кто сейчас на конференции
Сейчас этот форум просматривают: Bing [Bot] и 33 гостя