![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Загнулась кисть канвы принтера [D6, Win95/98]
Danja12 © (2006-07-06 09:19:00)При печати полигонов со стилем кисти отличным от bsSolid или bsClear заливка всегда одна и та же (непонятно какая). При этом на изображение не влияют также: CopyMode, Brush.Color, Brush.Bitmap. Хотя на экране все нормально, а процедура вывода информации на экран и на принтер одна и таже. Но Канвы то разные... Код практически не менялся, а вот на машине ПО обгрейчивалось, браузеры и т.д. Если кто сталкивался, помогите. Заранее благодарен.
danja12 (2006-07-06 16:18:00) [1]Кстати, пробовал печатать с меньшим разрешением и 300 и 150 и 75. Те же яйца, только в профиль. Результат стабильный, отличающийся от разрешения в 600, но, увы, неверный, а жаль :(
danja12 (2006-07-06 15:08:00) [2]Да, действительно. Я этот метод использую для впечатывания куска карты в какой-либо документ. Надо будет попробовать. Не скажется ли, вот только, на скорости отрисовки. Иногда приходится оперировать десятками и сотнями тысяч объектов. С другой стороны, больше чем на А3 не печатаем, а на больших масштабах (1:500, 1:100) объектов меньше десятка.
Спасибо. Как глоток свежего воздуха, в смысле, пообщаться с умным человеком. А то у меня периодически возникает ощущение, что у нас в городе я - единственный программист. Остальные либо только базы данных, либо то, что удается в визуальной среде натаскать, не залезая в код, либо уж совсем "крутые хакеры", которым не интересны подобные проблемы.
MBo (2006-07-06 14:20:00) [3]>А какова основная идея своей процедуры вывода заштрихованных многоугольников
По набору вершин строится регион CreatePolygonRgn
Для графического контекста устанавливается регион отсечения SelectClipRgn
Далее просто рисование линий (наклонных или каких нужно) в ограничивающем прямоугольнике региона (GetRgnBox) с заданным шагом (рассчитывается из dpi)
Danja12 (2006-07-06 13:58:00) [4]У меня картографический редактор. Печать идет в точном масштабе (очень точном :) Стрейчи впринципе использовать нельзя. Штриховки, поначалу, использовались для печати карт в черно-белом варианте. Специально держались как минимум два цветовых набора: цветной для работы и ч\б для печати "оперативных выкопировок". Впоследствии штриховки использовали и в цвете: меньше чернил, меньше аляповатости на экране. Ну, на экране то, и сейчас все нормально, а некоторое время не печатали, и вдруг глюк. Софт (мой) все время корректируется, добавляются новые функции, которые требуются начальству. Но систему печати как написал один раз, так больше и не трогал. Удачная получилась, много удачней чем в Автокаде, для карт по крайней мере.
А какова основная идея своей процедуры вывода заштрихованных многоугольников, если это не технологический секрет и не коммерческая тайна? Я то стандартными методами канвы обходился до этого. Но сейчас заказали для линейных объектов нестандартные типы линий - произвольные как в Автокаде. Может и площадные самостоятельно обрабатывать.
Извиняюсь что так много. Редко когда меня инструментарий так достает, но вот сейчас, действительно прижало.
MBo (2006-07-06 12:25:00) [5]Ну не знаю. С принтером у меня опыт минимальный.
Для вывода картинок с узорными кистями использовал растяжение картинки StretchBlt, а также писал когда-то свою процедуру вывода заштрихованных многоугольников.
Danja12 (2006-07-06 12:11:00) [6]>Возможно, драйвер принтера поддерживал правильное рисование узорных кистей, а теперь сменился.
Сразу у всех? Я в чудеса такого порядка не верю. А вот в то что вышел какой-нибудь новый DirectX, и все его тут же поставили - верю. Причем лично наблюдал такую картину: приношу свой проект на новенький ноутбук в организацию, там компилирую, печатаю - все Ок. Через пару дней его работы в сети, он печатает как и остальные. Кто и что на него ставил отследить затруднительно - раздолбайство в бюджетных контторах российской глубинки то еще.
Вопрос: а не хранится ли информация о кистях где-нибудь отдельно? Я dll-ки и шрифты просто пишу в каталог запуска и не имею никаких проблем, а в реестр никогда ничего не пишу. Вот бы и с кистями файлик таскать вместе с exe-шником.
MBo (2006-07-06 11:57:00) [7]>Т.е. дело в Виндах или каких либо библиотеках.
Возможно, драйвер принтера поддерживал правильное рисование узорных кистей, а теперь сменился.
Danja12 (2006-07-06 11:33:00) [8]Да, проблема то втом, что аппаратная часть не менялась, и какое то время назад все работало. Тем паче, что программа стоит на десятках рабочих мест с разными (струйными и лазерными) принтерами. И все было нормально. Сейчас провел эксперимент: откопал exe-шник 2003 г. запустил - глюк присутствует, хотя в 2003 заведомо все работало. Т.е. дело в Виндах или каких либо библиотеках. Все равно, спасибо за ответ. Я редко здесь бываю, но каждый раз, первый ответ Ваш, еще раз спасибо.
MBo (2006-07-06 10:16:00) [9]это фундаментальная проблема - узорные кисти используют разрешение устройства, при этом 8 пикселов на экране - нормально, а на лазернике с 600dpi - сливаются.