В предыдущей статье было предложено для задания координат точек трансформации обвести ломаной линией сначала исходные точки, а затем – другой линией обвести конечные точки в том же порядке. На практике так удобно делать, если исходная и конечная область нахождения объектов значительно удалены друг от друга или же их масштабы очень различны. Но если обе области – исходная и конечная – приблизительно совпадают, то оказывается удобнее вместо двух ломаных по N вершин каждая построить N отдельных отрезков (векторов) с двумя вершинами каждый, от исходной точки до конечной. Теперь подробные рекомендации.
1. Создать отдельный линейный тип геометрии в каком-либо слое карты.
2. Включить созданный тип в тему, с которой вы работаете.
3. Построить в этом новом типе нужное количество отдельных отрезков (векторов), соединяющих попарно исходные точки с конечными. При построении отрезков нельзя применять «стяжку», так как она порождает непредсказуемое количество промежуточных узлов. Кроме отрезков, соединяющих пары опорных точек трансформации, в данном линейном типе не должно быть никаких других объектов!
4. Вызвать пункт «Трансформация...» из меню «Сервис» окна темы. Выбрать на первом шаге вариант трансформации (обычно это либо «аффинное с вычислением коэффициентов методом наименьших квадратов», либо «нелинейное локально-аффинное»). На втором шаге можно задать файл отката, хотя он в данном случае и не понадобится. На третьем шаге, когда потребуется ввести координаты опорных точек, надо нажать кнопку «Тип», затем указать слой и тип геометрии, в котором находятся только что построенные отрезки (и более ничего другого, как уже было сказано ранее). Сразу после выбора слоя и типа таблица окажется заполненной координатами точек отрезков, нечётные точки будут соответствовать началам отрезков, чётные – концам. Важно, что конечные координаты останутся теми же, что и исходные, поэтому и не понадобится откат, ведь все трансформируемые объекты останутся на прежнем месте. На 4-ом и 5-ом шагах следует выбрать объекты для преобразования по типам и слоям. Сейчас можно выбрать любые слои и типы, хоть всю карту, ведь начальные и конечные координаты опорных точек трансформации совпадают, значит, преобразование будет фиктивным. На 6-ом шаге обязательно следует задать имя файла настройки, этот файл понадобится дальше. Далее, на 7-ом шаге, следует нажать «Преобразовать», после чего, ради пущей перестраховки, можно выполнить откат трансформации, если был указан файл отката. Вместо «Преобразовать» можно нажать «Отмена», так как нужный нам файл настройки уже был записан при переходе от 6-го шага к 7-му. В результате всех этих действий будет получен файл настройки трансформации, хранящий координаты отрезков, например «d:\transformation.cts».
5. Теперь надо запустить программку, которую вы можете скачать на этой же странице. Она запросит «исходный» файл настроек трансформации (у нас это был «d:\transformation.cts»), а затем – файл-результат (например, «d:\resultat.cts»). В результирующем файле будут подставлены начальные координаты от всех нечётных точек «исходного» файла, конечные – от чётных точек. В качестве слоя и типа, подлежащего трансформации, будут указаны слой и тип с фиктивным именем, специально для того, чтобы в дальнейшем можно было задать слои и типы, нужные на самом деле.
6. Снова вызвать пункт «Трансформация...» из меню «Сервис». На первом шаге надо загрузить файл настройки «d:\resultat.cts» (тот, что был создан предлагаемой программкой). При переходе ко второму шагу появится окно-предупреждение с вопросом «Игнорировать дальнейшие ошибки в файле трансформации?». Следует нажать кнопку «Да». Во втором шаге можно задать файл отката, потому что теперь уже преобразование будет настоящим. На 3-ем шаге надо согласиться с предложенными координатами, а на 4-ом и 5-ом шаге следует задать те слои и типы, которые необходимо трансформировать на самом деле. На шестом шаге можно сохранить файл настройки трансформации, например, перезаписав файл «d:\resultat.cts», чтобы в нём хранились теперь уже реальные, а не фиктивные, слои и типы. На седьмом шаге – нажать кнопку «Преобразовать», и на этом весь процесс будет успешно завершён.
20 марта 2007 г.
Трухачёв М.Ю.