Re: Построение квадратных полигонов вокруг точки
Добавлено: 23 апр 2017, 02:39
Я код последнего модуля не смотрел, но очевидно, что направление является необходимым условием.
Но все же исходная задача, как это водится, хотя здесь редчайший случай, раскрыта в том числе и задача, а не только "нужны желтые квадратики на синем фоне", в описанной постановке, как мне кажется, автоматического решения не имеет. Либо задача требует уточнения - как именно будет позиционирован "квадратик" в случае, если ЛЭП меняет направление. В обычной жизни как известно - как угодно: может быть вдоль входящей, может быть вдоль исходящей, а может под любым углом, главное, что бы провода не пересеклись.
PS
А как вокруг точек с помощью буфера получить квадрат, хотя бы и с разными гранями. Вроде должен получаться всегда круг или что то на него похожее.
PSS
А в целом, квадрат вокруг точки, если имеет место быть проекция, сохраняющая расстояния, и размеры квадрата не запредельно большие, получается без реализации поворота в три шага:
1. построить буфер вокруг точек с радиусом сторона квадрата.
2. для каждого построенного круга построить MBR - должен выйти квадрат, и круг заменить на него.
3. не помню, что получиться "регион" или "прямоугольник", поэтому на всякий случай превратить полученное в "регион".
Все команды стандартные.
Но все же исходная задача, как это водится, хотя здесь редчайший случай, раскрыта в том числе и задача, а не только "нужны желтые квадратики на синем фоне", в описанной постановке, как мне кажется, автоматического решения не имеет. Либо задача требует уточнения - как именно будет позиционирован "квадратик" в случае, если ЛЭП меняет направление. В обычной жизни как известно - как угодно: может быть вдоль входящей, может быть вдоль исходящей, а может под любым углом, главное, что бы провода не пересеклись.
PS
А как вокруг точек с помощью буфера получить квадрат, хотя бы и с разными гранями. Вроде должен получаться всегда круг или что то на него похожее.
PSS
А в целом, квадрат вокруг точки, если имеет место быть проекция, сохраняющая расстояния, и размеры квадрата не запредельно большие, получается без реализации поворота в три шага:
1. построить буфер вокруг точек с радиусом сторона квадрата.
2. для каждого построенного круга построить MBR - должен выйти квадрат, и круг заменить на него.
3. не помню, что получиться "регион" или "прямоугольник", поэтому на всякий случай превратить полученное в "регион".
Все команды стандартные.