Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Рисование в Delphi. Графический режим

Тип Реферат
Предмет Информатика
Просмотров
1307
Размер файла
854 б
Поделиться

Ознакомительный фрагмент работы:

Рисование в Delphi. Графический режим

Рисование в Delphi. Графический режим.

Рисовать в Delphiможно, используя канву (холст) формы:

form1. canvas

(form1 – можно не писать).

Например, цвет заливки (кисти) можно задать так:

form1. canvas. brush. color := clRed;

Цвет линий (перо) можно задать так:

canvas. pen. color := clGreen;

Цветa можно задавать случайным образом:

canvas. brush. color := random(1000000);

Эллипс (круг) можно нарисовать так:

canvas. еllipse(x1, y1, x2, y2);

Фигура эллипса (круга) оказывается вписанной в прямоугольник (квадрат) с вершинами – левой верхней x1, y1 и правой нижней x2, y2.


x2, y2

Причем координаты можно задать числами:

canvas. еllipse(100, 200, 300, 420);

переменными (см выше) и выражениями:

canvas. еllipse(х, y, x+100, y+150);

Отсчет ведется от левого верхнего угла клиентской области формы:


Прямоугольник (квадрат) можно задать так:

canvas.Rectangle(x1, y1, x2, y2);

x1, y1
по координатам двух вершин:
x2, y2

Линию можно нарисовать из текущего (последнего) положения (точки) в точку с заданными координатами x, yс помощью команды:

canvas.LineTo(x, y);

Начальной (самой первой) точкой считается начало координат (точка 0, 0 формы).

Переместиться из текущего положения в точку с заданными координатами x, y, не оставляя следа, можно с помощью оператора:

canvas. MoveTo(x, y);

Залить (закрасить) замкнутую область можно с помощью команды:

canvas. FloodFill(x, y, цвет, fsborder);

где x, y- координаты любой внутренней точки этой замкнутой области, цвет – цвет заливки, fsborder- режим заливки до контура (бордюра) этой области.

Проект 1. Нарисовать снеговика.

Процедура рисования может быть такой:

procedure TForm1.Button1Click(Sender: TObject);

begin

canvas.Pen.Color:=claqua;

canvas.Brush.Color:=clAqua;

canvas.Ellipse(200,200,400,400);

canvas.Ellipse( . . . );

. . .

canvas.Pen.Color:=clRed;

canvas.Brush.Color:=clRed;

canvas.Rectangle(280,30,320,60);

canvas.MoveTo(260,120);

canvas.LineTo(200,100);

canvas.MoveTo(340,120);

canvas.LineTo(400,100);

. . .

canvas.MoveTo(290,75);

canvas.LineTo(250,77);

canvas.LineTo( . . . );

. . .

canvas.FloodFill(285,77,clred,fsborder);

end;

Проект2. Нарисовать круглую мишень.

Используемоператорцикла:

for k:=1 to n do begin

. . .

end;

где n- количество кругов.

Цвет зададим случайным образом:

canvas.Brush.Color:=random(10000000);

Координаты зададим относительно центра квадратной области, в которую вписан круг:


Например так: 360-r,180-r- левая верхняя вершина, 360+r,180+r- правая нижняя вершина квадратной области.

Здесь r– радиус круга, который затем уменьшаем r:=r-25;


Дополнительно: Нарисовать квадратную мишень.

Проект 3. Нарисовать кучу шаров.

Количество шаров зададим 300.

Радиус r , координаты x, y– зададим случайным образом:

r:=random(100)+5;

x:=random(200)+220;

y:=random(100)+120;

Кроме того, нам понадобится задержка (замедление):

for i:=1 to 10000000 do;

Дополнительно: сделать шары на весь экран.

Задержку (замедление) можно убрать.

Проект4. Нарисовать столбчатую диаграмму.

Дополнительно: над каждым столбиком вывести его размер (высоту):

Подсказка: используем процедуру canvas. textout( x, y, текст);

Проект 5. Нарисовать гирлянду.

Дополнительно: на каждом круге вывести его размер (радиус):

Проект 6. Летающий шарик.

Для начала пусть летает влево – вправо отражаясь от соответствующих границ формы.

В качестве шарика используем компонент shape - фигура (см. Вкладку палитры компонентов Дополнительно). Причем, одноименное свойство shapeв инспекторе объектов настроим на значение stCircleокружность.

Для движения шарика установим компонент Timer (см. вкладку Система - часы).

Это не визуальный компонент (невидимый после запуска).

Выполняет функцию регулярного прерывания программы через определенный интервал времени (см. свойство interval) для выполненияопределенных пользователем действий (см. процедуру обработки таймера procedureTForm1.Timer1Timer(Sender: TObject);).

Объявим глобальные переменные:

var x, hx: integer;

В процедуре FormCreateвключим таймер:

timer1.Enabled:=true;

Зададим начальное положение шарика

x:=shape1.Left;

Шаг движения:

hx:=10;

Интервал прерывания таймера:

timer1.interval:=20;

Двойным щелчком по часам переходим в процедуру:

procedure TForm1.Timer1Timer(Sender: TObject);

где изменяем координату :

x:=x+hx;

Проверяем границы и меняем направление:

if (x>=536-shape1.width) or (x<=0) then hx:=-hx;

И рисуем по новым координатам (старое положение фигуры стирается автоматически):

shape1.Left:=x;

Дополнительно1: шарик должен летать по диагонали.

Подсказка: координату y определяем как shape1.top.

Дополнительно2: Сделать два шарика, летающих по диагонали не зависимо друг от друга (фигуры shape1 иshape2).

Проект 7. Броуновское (хаотичное) движение шарика.

Выбираем случайноодно из восьминаправлений:

Для этого в процедуре обработки события связанного с таймером пишем:

procedure TForm1.Timer1Timer(Sender: TObject);

var z: integer;

begin

z:= random(8);

case z of

0: begin hx:= 3; hy:= 0; end;

1: beginhx:= 3; hy:= -3; end; {оператор выбора варианта}

2: направление 2

3: направление 3

. . .

end;

x:= x + hx;

y:= y + hy;

shape1. left:= x;

shape1. top:= y;

end;

Дополнительно1: Сделать броуновское движение двух шариков.

Дополнительно2: Шарик не должен выходить за пределы формы.

Проект 8. Цветной ковер.

Для этого в процедуре обработки события связанного с таймером пишем:

for k:=1 to 100 do

canvas.Pixels[random(536),random(348)]:= random(1000000);

где Pixels[ x, y ] массив всех точек (пикселей) формы, которым присваиваем случайный цвет.

Причем красим за один раз 100 точек (пикселей).

Цвет можно задавать изменяя случайно предел интервала:

random(random(random(1000000)));

В процедуре FormCreate пишем:

randomize;

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

Проект 9. Броуновское (хаотичное) движение точки (пикселя), оставляющей след (траекторию).

Можно обойтись без casezof, если задать смещение точки так:

dx:= random(3) – 1;

dy:= random(3) – 1;

Очевидно будет выбрано одно из восьми направлений, т.к. выпадает случайно -1, 0, 1.

Координаты зададим в процедуре FormCreate , двигать точку будем в процедуре Timer1Timer.

Проект 10. Броуновское (хаотичное) движение Nточек (пикселей), оставляющих след (траекторию).

Координаты точек (пикселей) и цвет задаем случайным образом (random) и сохраняем их в массивах:

x[k], y[k] координаты k– ой точки, c[k] цвет k– ой точки.

При этом массивы надо объявить глобальные (перед Implementation):

Const N = 100;

Var x, y, с: array[1 . . N] of integer;

и присвоить (в процедуре FormCreate):

for k:=1 to N do begin

x[k];= random(536);

y[k]:= random(348);

c[k]:= random(random(random(1000000)));

canvas.Pixels[x[k], y[k]]:= c[k];

end;

В итоге можно получить такую картинку:


Проект 11. Снег.

Необходимо использовать массив координат, один цвет и пять направлений движения снежинок:

x[k], y[k] координаты k– ой точки.

В процедуре FormCreateзададим значения этих координат случайным образом:

randomize;

timer1.Enabled:=true;

for k:=1 to n do

begin

x[k]:=random(500)+20;

y[k]:=random(70)+50;

end;

В процедуре FormPaintнарисуем снежинки и поверхность земли:

canvas.Pen.Color:=claqua;

canvas.Brush.Color:=claqua;

canvas.Rectangle(0,320,535,330);

for k:=1 to n do

canvas.Pixels[x[k],y[k]]:=clred;

В процедуре обработки таймера находим новые значения координат:

x1:=x[k]+dx; y1:=y[k]+dy;

Рисуем снежинку по новым координатам (x1,y1) и стираем ее по старым координатам (x[k],y[k]):

canvas.Pixels[x1,y1]:=clred;

canvas.Pixels[x[k],y[k]]:=clbtnface;

Если снежинка долетает до поверхности – взамен нее выпускаем новую.

x[k]:=random(500)+20;

y[k]:=50;

Не забудем изменить (присвоить) текущие значения координат на новые:

x[k]:=x1;

y[k]:=y1;

Дополнительно: Снег должен накапливаться в сугробы:

Заставим снежинки накапливаться в сугробы (снежный покров).

Для этого будем предварительно проверять цвет пикселя в той точке, в которую собираемся переместить снежинку, т.е. в точке с новыми координатами (x1,y1).

Если впереди препятствие определенного цвета (поверхность земли, а затем и упавший снег), то снежинка останавливается. При этом она меняет свой цвет, что позволяет летящим снежинкам прилипать к уже упавшим, образуя, таким образом, сугроб (снежный покров):

if canvas.pixels[x1,y1]<>claqua then

begin

canvas.Pixels[x1,y1]:=clred;

canvas.Pixels[x[k],y[k]]:=clbtnface;

x[k]:=x1;y[k]:=y1;

end

else

begin

canvas.pixels[x[k],y[k]]:=claqua;

x[k]:=random(500)+20;

y[k]:=50;

end;

Проект 12. Дымоход.

Нарисовать две наклонные линии стенок трубы (наклонные для скорости засорения трубы). Запустить снизу частички сажи и ждать когда засорится труба.

Проект 13. Электролиз.


Нарисовать в центре формы шар (катод).

Запустить с четырех сторонионы (частички) и ждать когда они налипнут на шар.

Для того, чтобы частички летели с разных сторон необходимо задать четыре пары массивов координат:

x[k], y[k] координаты k– ой точки, летящей слева.

x1[k], y1[k] координаты k– ой точки, летящей сверху.

x2[k], y2[k] координаты k– ой точки, летящей справа.

x3[k], y3[k] координаты k– ой точки, летящей снизу.

Проект 14. Берег.

Программа моделирует морские волны, которые размывают берег, изменяя рельеф береговой линии, в зависимости от твердости породы.

Работу над проектом разобьем на три этапа:

I. Нарисуем волны (в виде пикселей синего цвета) и поверхность земли (в виде зеленого прямоугольника с желтыми участками более легкой породы).

II. Заставим волны двигаться (докатываться до береговой линии).

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

В итоге мы можем получить картинки следующего вида:

И через некоторое время:


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Филиал государственного бюджетного образовательного учреждения высшего образования Московской област
Спасибо Елизавете за оперативность. Так как это было важно для нас! Замечаний особых не бы...
star star star star star
РУТ
Огромное спасибо за уважительное отношение к заказчикам, быстроту и качество работы
star star star star star
ТГПУ
спасибо за помощь, работа сделана в срок и без замечаний, в полном объеме!
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно