Исправление геометрии

Я еще не надоел?
Рисуем прямоугольник, но одну его сторону надо сдвинуть.

  1. Пробовал маркировать две точки - двигает.
    ВОПРОС: где режим - расстояние.

  2. 1-й вариант работает только с объектом, который построен способом прямоугольник или ортогональный.
    Если при маркировки двух точек многоугольника двигать сторону, двигается - НО, где режим расстояние, и самое главное меняются внутрение углы соседних сторон.

  1. Маркируйте линию(Alt+click посреди линии), которую хотите передвинуть
  2. Нажмите кнопку Расширить/сжать на закладке Правка и укажите расстояние(положительное наружу, отрицательное внутрь) на которое хотите сдвинуть маркированную линию и нажмите ОК.
  3. К исходному объекту добавилось еще два: расширенный/сжатый и их разница. Ненужный(е) объект(ы) удалите.

P.S. Маркировать можно не только точку или линию а и целый фрагмент, для вменяемого результата работы кнопки “Расширить/сжать” маркированный фрагмент должен быть цельным. Если нужно расширить несколько фрагментов, то лучше это сделать поэтапно.

Можно но не экономично.
У меня предложение как это сделать :blush: Извините, совсем обнаглел.
Создать кнопку назакладке Правка.
Нижаем кнопку. Выскакивает окно: Галочка Расстояние.
Нажимаем курсором внутри объекта по-ближе к той стороне которую надо исправлять и тащим в перед, либо назад (при этом в окне отображается расстояние). Если надо конкретное росстояние ставим галочку и вводим его. Дотащили кликнули - все объект готов. И самое главное, если надо продолжаь работать в этом режиме с объектом, то перед нажатием кнопки, кликаем на нее правой кнопкой мыши, в контектсе “завиксировать кнопку” и жизнь прекрасна.
И не надо ничего маркировать. Переходить в другой режим и т.д.

разве что добавить в строку статуса расстояние, на которое перемещаем фрагмент. При необходимости перемещения на конкретное расстояние вполне можно пользоваться порядком, описанным Дмитрием.

Есть еще вот такой вариант:
vinmap.net/samples/MoveToDistance.exe

При этом, будут перемещаться все замаркированные точки объекта, кроме базовой.

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

Вынесите подписи длинам линий и увидите изменения.
VisualChange.exe (181 KB)

Не совсем то, конечный результат подписи не нужен. Надо в реальном времени
.bmp (3.35 MB)

Выше были предложены внятные пути для решения проблемы удлиннения линий: расширить/сжать, редактирование свойств линии, контроль по вынесеным подписям. Зачем непременно нужно видеть какой-то диалог с изменениями длины? Что вы собственно намереваетесь проделать с вашим объектом (простыми словами, без “хочу галочку и окошко тут и там”)?

Проще говоря - это удобно. И быстро. :slight_smile:
Когда рисуете полигон на карте, вы же видите что рисуете.

Вот пример.
Допустим надо исправить сторону многоугольника, дотащив ее до точечного объекта, чтобы сторона многоугольника пересекала координату этого объекта.
По вашим советам, я ума не приложу как это сделать?
Вот в чем весь сыр-бор! :slight_smile:

А каким образом здесь поможет предлагаемый вами вариант?

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

Считайте это тоже самое - поправляете вершину многоугольника, в реальном времени и точно

С захватом точкой ближайшей точки/линии вроде как все понятно и эти функции в Digitals реализованы. С привязкой редактируемой линии(фрагмента) к другим точкам/линиям не все так однозначно, но с этим справляется небольшая цепочка действий.
VisualChange2.exe (195 KB)

Вот именно - цепочка дейсвий (не экономично)
А во-воторых, почему изменяются внутренние соседние углы?
Мы же говорим об исправлении геометрии.

Судя по всему, вы просто не хотите добавить, такую функцию.

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

А после этого я вообще перестал понимать о каких исправлениях идет речь.

О каких исправлениях?
Смотрите изображение выше, с ниже написанным

Вот именно
Должны изменяться два прилежащих угла и перемещаемая сторона, но не соседние углы