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

Вниз

Помогите нарисовать (TCanvas)   Найти похожие ветки 

 
Снежанка   (2005-11-09 14:59) [0]

Здравствуйте! Проблема заключается в следующем! В уневере по информатике дали задание: "В центре Form1 (Height 420 Width 450) с помощью метода TCanvas, нарисовать сердечко с черным контуром и белой заливкой". Впринцепи я догадываюсь как это рисуется, но у меня ничего не получается, помогите бедной девушке!!! :)
P.S. И еще одно... Допустим нарисовали, а с помощью какого метода мы можем обратно стереть рисунок. Например Button1 рисует, а Button2 стирает рисунок. Заранее всем спасибо!


 
Tonich ©   (2005-11-09 15:06) [1]

рисуй лучше не наканве формы, а на конве имеджа (хоят можно и формы только придется код отрисовки поместить в onPaint) что бы рисунок не "перетирался"

так а что именно не понятно

для того что бы фот был белым Brush.color := clWhile
                      контур был черным Pen.Color := clBlack

луче задай конкретный вопром, так малокто поможет )


 
MBo ©   (2005-11-09 15:08) [2]

Сердечко проще всего нарисовать с помощью двух кривых Безье, объединив их в один вызов TCanvas.PolyBezier c массивом из 7 точек. Перу установить черный цвет, а кисти - белый. Середину залить FloodFill.
Стереть - заполнить весь прямоугольник фоновым цветом.


 
Снежанка   (2005-11-09 21:10) [3]


> Сердечко проще всего нарисовать с помощью двух кривых Безье,
>  объединив их в один вызов TCanvas.PolyBezier c массивом
> из 7 точек. Перу установить черный цвет, а кисти - белый.
>  Середину залить FloodFill.

Спасибо за советы. Сердечко нарисовала  спомощью PolyBezier, но только вот закрасить не получается. Кисть делаю белой (Canvas.Brush.Color:=clWhite;), но сердечко все равно каким было "прозрачным", таким и остается! И еще я не совсем поняла что делать с FloodFill? Какие параметры выставлять?


 
злобная танька   (2005-11-09 21:44) [4]


> Снежанка   (09.11.05 21:10) [3]


например
Form1.Canvas.FloodFill(x, y, Form1.Canvas.Pixels[x, y], fsSurface);
первые два параметра это место откуда потечет краска (она по алгоритму Ли течет)
третий параметр это цвет который будет закрашиваться цветом кисти если четвертый параметр fsSurface (или цвет до которого будет растекаться краска если четвертый параметр fsBorder).


 
Снежанка   (2005-11-10 20:32) [5]

Все равно не получается! :( Уменя просто вся форма закрашивается, а не конкретно сердечко! Я тут привела исходник отрисовки рисунка, пожалуйста допишите полностью код закраски сердечка. Выручайте пожалуйста!!!

Canvas.Pen.Color:=clBlack;
Canvas.Brush.Color:=clWhite;
Canvas.PolyBezier([Point(120, 160), Point(72, 104), Point(96, 88),
Point(120, 112), Point(144, 88), Point(168, 104), Point(120,160)]
);


 
Virgo_Style ©   (2005-11-10 21:19) [6]

..
Canvas.Brush.Color:=clRed;
Canvas.FloodFill(120,159,clBlack,fsBorder);


 
злобная танька   (2005-11-11 00:32) [7]

120, 136.. чтобы наверняка.
вдруг там у пена вайдтх несколько пикселов..



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

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

Наверх




Память: 0.48 MB
Время: 0.027 c
14-1131494060
JUS
2005-11-09 02:54
2005.11.27
Есть ли сайт где можно сразу отправить много много смс сообщений?


14-1130772182
myWindow
2005-10-31 18:23
2005.11.27
Соединение компьютеров по технологии шина


14-1131312974
Gero
2005-11-07 00:36
2005.11.27
Блокнот -> Перейти


4-1127767231
Вадя
2005-09-27 00:40
2005.11.27
Assembler, арх. проц. и т.д.


8-1120636507
DelphiN!
2005-07-06 11:55
2005.11.27
Изменение громкости звука в Windows, на драйверах Audigy2 zs