Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: CL | DM;

Вниз

Рисование штриховых и пунктирных линий GDI толщиной > 1   Найти похожие ветки 

 
Ziko   (2004-03-18 10:39) [0]

Привет Мастерам!
К сожалению при помощи функции LineTo WinGDI невозможно нарисовать прерывистую (стиль: psDash, psDot) линию толщиной более 1.
А нарисовать такую линию нужно на канве.
Подскажите, если кто сталкивался с этим, как можно решить проблему?


 
MBo ©   (2004-03-18 15:41) [1]

Возможно в WinNt,2K
Для этого нужно создать перо функцией ExtCreatePen.
В Win9X придется обходиться LineDDA


 
Ziko   (2004-03-18 16:52) [2]

Спасибо за совет, попробую так и сделать.
Тем более операционка - W2K.


 
Ziko   (2004-03-19 10:13) [3]

Всем привет!
Попробовал вчерась перышко создать при помощи ExtCreatePen.
Все отлично - можно рисовать прерывистые линии любой толщины.
Но наткнулся на другую бяку.
Толщину отличную от 1 можно задать только для геометрических перьев (тип PS_GEOMETRIC), в отличие от косметических (PS_COSMETIC).
В чем же бяка? А вот в чем:
Есть двумерный массив - вещественные координаты (X и Y) точек, для построения графика функции. Строим график, последовательно соединяя точки слева направо линиями. Массив содержит большое число точек ~3000-4000. Получается, что при переходе от точки к точке приращение координат небольшое.
В итоге график изображается сплошной линией, хотя стиль пера вовсе не PS_SOLID :o(
Если же использовать перо типа PS_COSMETIC, то все Ок. График получается какой надо - штриховой или пунктирный. Но, ёклм, толщину более 1 низя задать....
Может я чего-то не так делаю?


 
MBo ©   (2004-03-19 11:15) [4]

Все правильно делаешь, косметик действительно всегда единичной ширины.
Для  твоей задачи (море точек), видимо, лучше провести аппроксимирующую ломаную с отрезками разумного размера либо кривую.


 
MBo ©   (2004-03-19 11:19) [5]

Да, попытайся еще PS_ENDCAP_FLAT использовать для концов отрезков.


 
Ziko   (2004-03-19 11:28) [6]

MBo, спасибочки за отклик!
Попробую поколдовать ещё над этой задачкой.



Страницы: 1 вся ветка

Текущий архив: 2004.05.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
4-1082140701
juiceman
2004-04-16 22:38
2004.05.30
событие wm_KeyDown


14-1084425781
Мазут Береговой
2004-05-13 09:23
2004.05.30
Ужасные новости для тех, кто собирается долго жить!


1-1084960234
Fedun
2004-05-19 13:50
2004.05.30
polyline плывет при прокрутке окна


1-1084356739
BlackTiger
2004-05-12 14:12
2004.05.30
Как преобразовать "&#_1092;&#_1099;&#_1074;" в String.


1-1084956873
Alex_x
2004-05-19 12:54
2004.05.30
Как получить количество минут с DateTime