![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как нарисовать линию точками [D7, WinXP]
incm © (2008-04-21 15:41:00)Нужно нарисовать линию состоящую из точек, размером в 1 пиксель.
Ни один из имеющихся стилей объекта Pen не дает такого.
Есть стиль psUserStyle, но как им пользоваться похоже большей секрет! Гугль находит по слову psUserStyle лишь пару десятков ссылок и то все на "нечеловеческих" языках, типа китайского.
DVM (2008-04-22 13:51:00) [1]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=94
Anatoly Podgoretsky (2008-04-22 13:40:00) [2]А какие претензии, специальная функция, работающая по алгоритму Брезенхама.
{RASkov} (2008-04-22 13:10:00) [3]> [9] incm (22.04.08 12:06)
Это не я предложил, а Анатолий [3]. Из-за [4] я решил напомнить про [3] и делов :)
incm (2008-04-22 12:06:00) [4]
> По-моему эт пунктир называется
Пунктир это psDot. Но не то, что мне нужно. psDot - рисует линию черточками.
Вариант который предлжил {RASkov}именно то.
Германн (2008-04-22 01:23:00) [5]
> AIK © (21.04.08 21:09) [7]
>
>
По-моему тоже. Но автор ушёл в спячку.
AIK (2008-04-21 21:09:00) [6]
> Мне не толщину надо менять, а стить линии!
> Что бы линия рисовалась точками, т.е. один пиксель закрашен,
> следующий нет и так далее.
По-моему эт пунктир называется
Anatoly Podgoretsky (2008-04-21 19:40:00) [7]Зачем что то мудрить, хватит и логической переменной, и будет работать для любых линий, на то он и DDA
{RASkov} (2008-04-21 18:48:00) [8]> [4] incm (21.04.08 18:33)
Тебе линии "ровные" нужны или "под углом"?
В прочем в любом случае [3] тебе поможет...
Просто для ровных линий Callback простой:
procedure DDAProc (X, Y: Integer; Cnv: TCanvas); stdcall;
begin
if ODD(X) or ODD(Y) then Cnv.Pixels[X,Y]:=clBlack;
end;
Для "угловатых" уже не пойдет....
incm (2008-04-21 18:33:00) [9]
> Стили объекта Canvas.Pen не отвечают за толщину карандаша,
> за это отвечает св-во Pen.Width
Мне не толщину надо менять, а стить линии!
Что бы линия рисовалась точками, т.е. один пиксель закрашен, следующий нет и так далее.
Anatoly Podgoretsky (2008-04-21 16:03:00) [10]> incm (21.04.2008 15:41:00) [0]
LineDDA позволяет осуществить все фантазии.
Игорь Шевченко (2008-04-21 15:53:00) [11]тебе надо как у рамки фокуса ?
Сергей М. (2008-04-21 15:47:00) [12]
> Ни один из имеющихся стилей объекта Pen не дает такого
Стили объекта Canvas.Pen не отвечают за толщину карандаша, за это отвечает св-во Pen.Width
Цитата из справки:
Specifies the width of the pen in pixels.
Delphi syntax:
property Width: Integer;
Там же имеется пример.