![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Подскажите пожалуйста, в каком на правлении искать?
Поставил перед собой задание, сделать программу, которая будет медлено рисовать точки в области 400х400 пикселей в любой точке экрана (тоесть где я поставлю форму там и будет рисовать). Точки появляются хаотично, но загвостка в том, что я не знаю как сделать так, чтобы не было видно никакого фона, лишь точки на экране, как будто сгоревшие пиксели, как это сделать? Подойдёт ли Канва и прозрачность по "регионам"? Ну или подскажите в каком направлении искать и рыть?) |
#2
|
||||
|
||||
![]() Как я понимаю тебе надо рисовать на активном окне (например, на рабочем столе)... Вот посмотри, может поможет:
http://www.gcmsite.ru/?pg=art&id=del...-screen-winapi http://otvety.google.ru/otvety/threa...816352eb48b36b Помогаю за Спасибо ![]() |
#3
|
|||
|
|||
![]() Как бэ я пытаюсь разобратся с этими функциями (или как правильно назвать?), чтобы в дальнейшем использовать их в своём проэкте.
Хочу реализовать постепенный рост линии, и раздвоения по определенным алгоритмам. Поэтому ссылки не очень верные. П.С. Лучше мне не давать ссылки, а просто подсказать как правильно сформулировать запрос в гугле ))) Для начала например "Delphi 7 Canvas рисуем попиксельно" ))) П.С. ОффТоп: "Рисование на рабочем столе" еще описывается в книге "Хладни И.- Внутренний мир Borland Delphi" начиная с страницы 510. Как рисовать, нашел, сделал прозрачный фон, и начал рисовать по статьям из URL. Вопрос в друго, как теперь организовать алгоритм роста? Как узнать количество нарисованых пикселей, определенного цвета? Последний раз редактировалось GraffyM, 21.10.2010 в 17:44. |
#4
|
||||
|
||||
![]() подщитать колличество пикселей определённого цвета можно через цикл... так... первое что в голову пришло
![]() Код:
var w,h,i:integer; begin h:=1; i:=0; for h:=1 to image1.height do begin for w:=1 to image1.width do begin if image1.canvas.pixels[w,h]=clBlack then i:=i+1; end; end; showmessage(inttostr(i)); end; Последний раз редактировалось eXplorer, 21.10.2010 в 20:26. |
#5
|
|||
|
|||
![]() А не проще просто запоминать число при рисовании?
|
#6
|
||||
|
||||
![]() точно... я и забыл что процедура рисования ещё есть
![]() ну да проще при рисовании пикселов считать колличество... |
#7
|
||||
|
||||
![]() вот тогда так... для примера (рисую на image.canvas) черные пикселы в случайном месте...
Код:
var i,h,w,k:integer; begin k:=0; for i:=1 to image1.Height+image1.Width do begin h:=random(image1.Height); w:=random(image1.Width); image1.Canvas.Pixels[w,h]:=clBlack; sleep(10); k:=k+1; application.ProcessMessages; end; showMessage(inttostr(k)); end; |