Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
nawakster
Зарегистрирован: 17.06.2008 Сообщения: 59
|
Добавлено: Пт 29 Янв 2016 18:32 Заголовок сообщения: Подпись объекта - вычисление координат подписи |
|
|
Добрый день.
Нужно разместить на участках подпись, желательно в середине. Многие из объектов многоугольники не являющиеся выпуклыми, что затрудняет задачу.
Может кто уже реализовывал? Поделитесь, пожалуйста, куском кода вычисляющим координаты подписи объекта. |
|
Вернуться к началу |
|
 |
Азаматов Азамат Хадисович
Зарегистрирован: 17.02.2005 Сообщения: 100 Откуда: г. Учалы, Респ. Башкортостан
|
Добавлено: Пт 29 Янв 2016 23:33 Заголовок сообщения: |
|
|
горизонтальные надписи? |
|
Вернуться к началу |
|
 |
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;
}
|
|
|
Вернуться к началу |
|
 |
nawakster
Зарегистрирован: 17.06.2008 Сообщения: 59
|
|
Вернуться к началу |
|
 |
|