Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Практическая работа. Пусть автомобиль перемещается на фоне здания и деревьев слева направо на расстояние 400 пикселей⇐ ПредыдущаяСтр 12 из 12
Пусть автомобиль перемещается на фоне здания и деревьев слева направо на расстояние 400 пикселей. Загрузим изображения фона и автомобиля из файлов gorod.gif и avto.jpg, поместив их описатели в переменные fon и avto. Установим прозрачность фона для изображения автомобиля SetPictureTransparent(avto,true). Зададим начальные координаты (х, у), ширину w и высоту h изображения автомобиля. Все переменные имеют тип integer. Процедуры рисования и стирания будем повторять в цикле с предусловием While до тех пор, пока автомобиль не переместится на 400 пикселей. На каждом шаге цикла координату х левого верхнего угла изображения увеличиваем на 10. Ширину уменьшаем на 2, а высоту на 1 пиксель для уменьшения изображения при удалении.
program Avto1; uses GraphABC; var fon, avto, x,y, w,h: integer; Begin SetWindowSize (600, 300); fon:= LoadPicture ('город.gif'); avto:= LoadPicture ('автомобиль.jpg'); SetPictureTransparent (avto, true); x:= 10; y:= 170; w:= 240; h:= 100; while x < 400 do Begin ClearWindow; DrawPicture (fon, 0, 0); DrawPicture (avto, x, y, w,h); x:= x + 10; w:= w - 2; h:= h - 1; sleep (20); Redraw; End; End.
program babochka; uses Graphabc; var f, b, x, y: integer; Begin setwindowsize (450, 550); b:= LoadPicture ('цветы.jpg'); f:= LoadPicture ('бабочка.gif'); x:= 10; y:= 350; while x<= 200 do Begin DrawPicture (b, 0, 0); Setpicturetransparent (f, true); DrawPicture (f, x, y); x:= x + 7; y:= y- 4; sleep (200); End; End.
Загрузим изображение циферблата из файла таймер.jpg, поместив описатель в переменную fori. Зададим координаты центра вращения стрелок (хО.уО) и начальные значения секунд sec:=0 и минут min:=0. На каждом шаге цикла с постусловием repeat...until будем увеличивать значение секунд на 1 до тех пор. пока время не превысит 60 мин. или не нажата любая клавиша (keyPressed). Значения минут вычислим целочисленным делением секунд на 60: min:= secdiv60. Секундную стрелку будем рисовать линией длиной 120 и толщиной 3 пикселя, а минутную - 100 и 7 пикселей. Радианная мера угла поворота секундной стрелки равна Pi*sec/30. а минутной Pi"min/30. Координаты концов стрелок (х,у) вычисляем по формулам тригонометрии и округляем до целых Например, для секундной стрелки x:=x0+Round<120"sin(Pi'sec/30))i y:=yO-Round(120'cos(Pi'sec/30)).
Program Timer; uses crt, GraphABC; var fon, x0, y0, x, y, R, min, sec: integer; Begin SetWindowSize (360, 480); HideCursor; x0:= 173; y0:= 300; min: =0; sec:= 0; fon:= LoadPicture ('таймер.jpg'); Repeat DrawPicture (fon, 0, 0); sec:= sec + 1; min:= sec div 60; x:= x0 + Round (120 * sin (Pi * sec / 30)); y:= y0 – Round (120 * cos (Pi * sec / 30)); SetPenWidth (3); Line (x0, y0, x, y); x:= x0 + Round (100 * sin (Pi * min / 30)); y:= y0 – Round (100 * cos (Pi * min / 30)); SetPenWidth (7); Line (x0, y0, x, y); sleep (1000); until (min >= 60) or keyPressed; End.
|