Как Замутить Афкад По Спутниковым Фото И Схеме А/п

Ситуация когда нет ни какой привязки к местности, при рисовании в АФЕАДе, знакома тем, кто пытался делать или порт с нуля или редактировать убогие однополосные дефолтовые. А в АФКАДе, к сожелению, нельзя положить картинку фоном. Как я вышел из этого положения.

В GoogleEarth:
жмем F11 — переходим в полный экран, убираем компас, статусную строку, центруем и маштабируем что бы порт влезал максимально полно на экран (не забываем убрать наклон поверхности в 0)
Если есть схема стоянок или план порта — жмем Add — Image Overlay загружем схему крутим, центируем и маштабируем что бы схема максимально точно легла на спутиковое фото, переодически изменяя прозрачность схемы, для удобства.
Включаем отображение координатной сетки (поправляем если надо чтобы сетка и порт легли поудобнее)
сохраняем картинку.
[если мешает координатная сетка или собрались делать фототеррайн — то ни чего не трогаем, отключаем сетку и сохраняем еще одну картинку]

В ACDSee:
обрезаем (Modify — Crop) картинку по крайним линиям координатной сетки, предварительно записав северную координату по которой обрезаем (Ск), южную, западную и восточную (Юк, Зк, Вк), сохраням как BMP
[если хотим без сетки то в ACDSee по картинке с сеткой в режиме Crop устанавливаем границы сохраняем как Preset, переключаемся на картинку без сетки выбираем записаный Peset и режем картинку без сетки]
Координаты лучше перевести из градусы, минуты, секунды в доли градуса (секунды делим на 60, прибавляем минуты результат делим на 60, прибавляем градусы)

Берем resampler.exe из Terrain SDK ( http://www.microsoft…sdk.asp#terrain ) редактируем inf файл (можно взять niagara.inf для образца):

[Destination]
DestDir = «.»
DestBaseFileName = «имя будущей БГЛ«
BuildSeasons = 0
UseSourceDimensions = 1

[Source]
Type = Custom
SourceDir = «.»
SourceFile = «исходная картинка.bmp«
Lat = Ск ( записаная северная координата)
Lon = Зк
NumOfCellsPerLine = размер картинки по горизонтали (Xк)
NumOfLines = размер кртинки по вертикали (Yк)
CellXdimensionDeg = (Зк-Вк)/Xк
CellYdimensionDeg = (Cк-Юк)/Yк

запускаем resampler.exe <inf файл>

Получаем БГЛ и кучу BMP
на BMP натравливаем imagetool: imagetool.exe -terrainphoto *.bmp (или уберите исходную картинку или в командной строке задайте макску для первых цифр типа imagetool.exe -terrainphoto 100*.bmp)
получаем такуюже кучу MIP файлов — их переменовываем в BMP (rename *.mip *.bmp)

в AddonSenery делаем отдельную папку в ней подпапки Scenery и Texture, в Scenery копируем BGL в Texture полученые BMP. В симе подключаем новый сценарий. (У меня для удобства есть уже подключеная ария TestScenery с пустыми Scenery и Texture куда время от времени копируются проверяемые сценарии и прочие извращения, чтобы не подключать какжый раз — с 2004 надо перегружать сим после подключения нового сценария)

Да, да — мы просто сделали фототеррайн со спутниковой фоткой и схемой 🙂

Теперь запускам сим в оконном режиме, запускаем AFCAD, жмем на замок, линкуя сим с АФКАДом. В слейв режиме катаемся в симе нажимая «o», «.», «M» для вставки в АФКАД парковки, ноды или маркеры соответственно.

Доклад закончен, разрешите получить замечания.

Ответов: 19

Сразу поправочка:
CellXdimensionDeg = (Зк-Вк)/Xк
читать естественно
CellXdimensionDeg = (Вк-Зк)/Xк

Следующий абзац справедлив для старого resampler:
«Получаем БГЛ и кучу BMP
на BMP натравливаем imagetool: imagetool.exe -terrainphoto *.bmp (или уберите исходную картинку или в командной строке задайте макску для первых цифр типа imagetool.exe -terrainphoto 100*.bmp)
получаем такуюже кучу MIP файлов — их переменовываем в BMP (rename *.mip *.bmp)»

если resampler брать из указаного по ссылки СДК то он делает не кучу BMP а кучу TGA
и imagetool — terrainphoto *.tga соответствено

а не легче ли в FSSC фото сделать бэкграундом, расставить полосу и ориентиры, и координаты перетащить в афкад?

Делал и так. Ориентиров надо много, а так видно цельную картину в симе. Я вообще постоянно использую «фототерайн» из схем, плана города и т.д для проверки правильности.

Точнее будет так

CellXdimensionDeg = (Вк-Зк)/(Xк-1)
CellYdimensionDeg = (Cк-Юк)/(Yк-1)

olon (26.09.2005 17:15):

Точнее будет так

CellXdimensionDeg = (Вк-Зк)/(Xк-1)
CellYdimensionDeg = (Cк-Юк)/(Yк-1)

CellDimensionDeg это сколько градусов в пикселе (точнее какая часть градуса) Берем разницу координат делим на число пикселей по соответствующей стороне. В самом старом ресамплере был глюк (шла полоса по южной и восточной стороне — там надо было вычитать 1)

Это просто арифметика: если картинке в 100 (N пикселей) пикселей соответствует отрезок от Х0 до Хк градусов, то координаты первой точки — Хо, второй — Хо+шаг, третьей — Хо+2*шаг, далее до индукции — Хк=Хо+(N-1)*шаг. Отсюда получаем формулу для шага (в градусах/на пиксель).

Арифметика хороша, если пиксель бесконечно малый и мы говорили бы о градусах между пикселями.

Говоря проще картинка в 1х1 пиксель — содержить землю 4.8 на 4.8 метра — уже какую то угловую меру — по твоей формуле же поучится 0

На самом деле в этом случае будет неопределенность типа 0/0, так как для картинки 1х1 координаты всех углов считаются одинаковыми — погрешность дискретизации сетки, при которой пиксель считается мельчайшей и неделимой единицей. это формулы стандартной дискретной арифметики. На деле же зависит от того, какие координаты приписываются пикселю — возможные варианты:
координаты северо-западного угла (наиболее распространенный случай, справедлива моя формула, проверена на практике)
координаты юго-восточного угла (кажется, справедлива твоя формула, но не проверял)
координаты центра.

как раз нет. Пиксел имеет конкретный размер и координаты его границ РАЗНЫЕ.
Еще раз повторю один пиксель покроет землю в симе 4 на 4 метра цветом пикселя.

Лежат три кирпича (пиксели) вплотную друг другу [Kx=3]на рулетке (координатной сетке) левая сторона этой конструкции лежит на отметке 10 см. (Зк=10) правая на отметке 100см (Вк=100) Сколько сантиметров в кирпиче?

(Вк-Зк)/Kx=(100-10)/3=30см. Берем линейку проверяем. «Шайтан, точно 30».

так вот пиксель — тот же кирпич

Есть дискретная математика, работающая с дискретными сетками, которые в рамках этой математики минимально делимые объекты. Это приближенная модель непрерывных объектов, неделимость узлов сетки ее аксиоматическое свойство. Как только мы выбираем размерность сетки (LOD), мы должны присвоить узлам сетки одни единственные координаты. Только на этом этапе возможен выбор, какие координаты из непрерывной модели мы присваиваем узлу сетки (СЗ угол, центр и т.п.), после этого мы должны забыть о непрерывной модели и работать по правилам дискретной математики

ты путаешь собственно сетку и пиксели. в данном случае пиксель(и) лежит(ат) между узлами сетки а не сетка состоит из пикселей.
Потом собствнно дискретная матиматика тут не причем. я говорил про 4 на 4 метра при максимальном разрешении.

Я могу сделать картинку 1 на 1 красный пиксель указать
Lat=60
Lon=60
SellXDmemention=20
SellYDimension=20

и получу в симе красный прямоугольник покрывающий площадь с 60 до 80 северной широты и с 60 до 80 градусов восточной долготы.

По поводу кирпичей:
Это весьма характерная путаница, которой поначалу страдают все (я тоже часто путаюсь). Дело в том, что первому кирпичу ты присваиваешь координаты правой стороны (северозападного угла), а последнему координаты левой стороны (ЮВ угол), то есть рассматриваешь кирпичи как протяженный, а не дискретный объект. Без дискретной математики конечно можно обойтись, если работать с небольшими картинками. У меня же задача другая — битмап Москвы имеет размеры где-то 10000 на 10000 пикселей, для работы с ним его приходится дробить на 10 частей, потом для каждой части делать свою бгл. так, чтобы в симе картинка снова была непрерывной. И поверь, эти формулы для меня не игры разума, а каждодневная практика.

Дык и пиксель протяженный объект.
И зачем дробить? recampler должен схавать и такую.
Потом погрешность между 10000 и 9999 при ресаплировании сожрется.

Для меня это тоже не игры разума. 🙂 практика правда через день 🙂

В туторе про сбилдер еще один альтернативный способ изготовления фототеррейна. Несколько попроще и пошустрее 🙂

А что может быть проще и шустрее написания шести чисел в нотепаде? 😉

Airman (10.11.2005 13:32):

А что может быть проще и шустрее написания шести чисел в нотепаде? 😉

А это Юр для леннивых. 🙂 числа надо посчитать еще. забить в нотпад и потом результат в виде файлов переписать и разложить в нужные места. 🙂 а тут все одним махом. снимок уже был подложен, оставалось несколько раз ткнуть мышой 🙂 даже кнопки на клаве не надо нажимать 🙂

И потом ведь это правильно, на мой взгляд, минимизировать количество разных инструментов, которые нужны для работы. достаточно один раз настроить сбилдер и уже многое возможно 🙂

а увиличив число инструментов в двое у нас получается увеличение в два раза «многое возможно» 🙂 а два раза многое возможно, согласись, это уже кое что 🙂

Airman (10.11.2005 15:01):

а увиличив число инструментов в двое у нас получается увеличение в два раза «многое возможно» 🙂 а два раза многое возможно, согласись, это уже кое что 🙂

может ты конечно и прав, но я дома вряд-ли стану держать дрель с перфоратором и с реверсом, обычную дрель с реверсом и шуруповерт автономный и еще что-то в этом роде. Каждый из них требует своего подхода и, в случае с такими инструментами, надо держить надежное многофункциональное, с минимальными заморочками и закрывающее максимум возможных требований. Я бы просто выбрал отдельно перфоратор и шуруповерт с режимом сверления, например, или простой шуруповерт и навороченный перфоратор с реверсами, регулировками и тд.
Ясен перец, что можно набрать всего и разного и все это будет работать, но тут как с навороченным телефоном, в котором кучу функций потребители и не знают 🙂
все это конечно мое IMHO 🙂

може ты и прав, но шуруп забитый молотком держится лучше чем гвоздь завернутый отверткой