Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Подпись объекта - вычисление координат подписи

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
nawakster



Зарегистрирован: 17.06.2008
Сообщения: 59

СообщениеДобавлено: Пт 29 Янв 2016 18:32    Заголовок сообщения: Подпись объекта - вычисление координат подписи Ответить с цитатой

Добрый день.

Нужно разместить на участках подпись, желательно в середине. Многие из объектов многоугольники не являющиеся выпуклыми, что затрудняет задачу.

Может кто уже реализовывал? Поделитесь, пожалуйста, куском кода вычисляющим координаты подписи объекта.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Азаматов Азамат Хадисович



Зарегистрирован: 17.02.2005
Сообщения: 100
Откуда: г. Учалы, Респ. Башкортостан

СообщениеДобавлено: Пт 29 Янв 2016 23:33    Заголовок сообщения: Ответить с цитатой

горизонтальные надписи?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
nawakster



Зарегистрирован: 17.06.2008
Сообщения: 59

СообщениеДобавлено: Сб 30 Янв 2016 00:04    Заголовок сообщения: Ответить с цитатой

Ага
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Азаматов Азамат Хадисович



Зарегистрирован: 17.02.2005
Сообщения: 100
Откуда: г. Учалы, Респ. Башкортостан

СообщениеДобавлено: Сб 30 Янв 2016 13:16    Заголовок сообщения: Ответить с цитатой

я делал для наклонных надписей.
Принцип.
выбираем самую длинную линию объекта.
Делаем перпендикуляр из центра линии и находим ближайшее пересечение с другой линией объекта.
Центр полученного отрезка с большой вероятностью и есть оптимальное место для центра надписи.
Код:

private static Text GenerateOneText(IIngeoApplication app,     IIngeoMapObject mobj, string text)
        {
            PointF lp1=new PointF(),lp2=new PointF();
            GetLongestLine(mobj,ref lp1,ref lp2);
            ...
            PointF lpc = GetLineCenter(lp1, lp2);
            PointF ip=GetInterPoint(mobj, lp1, lp2);
            PointF cip = GetLineCenter(lpc, ip);
            ...
            return txt;
        }

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
nawakster



Зарегистрирован: 17.06.2008
Сообщения: 59

СообщениеДобавлено: Вт 02 Фев 2016 11:27    Заголовок сообщения: Ответить с цитатой

Спасибо.
Но не стал велосипедить - нашел https://triangle.codeplex.com/
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB