Re: Функция Polyline не рисует длинные линии
От: MBo  
Дата: 21.04.06 09:50
Оценка: 2 (1) +1
Здравствуйте, SashaTula, Вы писали:

ST>Если задавать виндошной Polyline очень большие координаты точек (порядка 300000000 для WinXP, а для Win98 порядка 50000), то линии не рисуются. Как решить проблему?


В Win98 16-разрядная система GDI, поэтому координаты ограничены 32767.
В 2K/XP экспериментально установленный предел для координат Polyline — чуть меньше MaxInt div 16.
Известно, что некоторые функции GDI для повышения точности работают с числами с фиксированной точкой в формате 28.4 — вот отсюда и ограничение.
Функция Polyline не рисует длинные линии
От: SashaTula  
Дата: 21.04.06 08:57
Оценка:
Если задавать виндошной Polyline очень большие координаты точек (порядка 300000000 для WinXP, а для Win98 порядка 50000), то линии не рисуются. Как решить проблему?
Re: Функция Polyline не рисует длинные линии
От: ekamaloff Великобритания  
Дата: 21.04.06 09:17
Оценка:
Здравствуйте, SashaTula, Вы писали:

ST>Если задавать виндошной Polyline очень большие координаты точек (порядка 300000000 для WinXP, а для Win98 порядка 50000), то линии не рисуются. Как решить проблему?


А зачем понадобились такие большие значения? Может посмотреть на Coordinate Space and Transformation Functions ?
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re: Функция Polyline не рисует длинные линии
От: vvotan Россия  
Дата: 21.04.06 12:05
Оценка:
Здравствуйте, SashaTula, Вы писали:

ST>Если задавать виндошной Polyline очень большие координаты точек (порядка 300000000 для WinXP, а для Win98 порядка 50000), то линии не рисуются. Как решить проблему?

Не задавать такие большие координаты?
--
Sergey Chadov

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Функция Polyline не рисует длинные линии
От: Аноним  
Дата: 24.04.06 06:31
Оценка:
Большие значения понадобились при рисовании линий на плоттере под Win98.
Re[2]: Функция Polyline не рисует длинные линии
От: SashaTula  
Дата: 24.04.06 07:49
Оценка:
Сделал разбиение линий на части, если длина превышает критическую. Выявил еще одну особенность: видимый на экране конец линии должен быть нулевой точкой для функции Polyline. Если он — последняя точка, то линия не рисуется.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.