![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Организация перемещения объекта по заданной траекторииСодержание книги
Поиск на нашем сайте
Цель работы – овладение навыкамиорганизации работы в графическом режиме, использования стандартных функций для работы в графическом режиме, приемами построения графического изображения на экране, перемещения объекта по экрану по заданной траектории, используя функции сохранения изображения в памяти и вывода на экран из памяти. Задания для самостоятельной подготовки: 1. Изучить: - особенности организации работы в графическом режиме в изучаемом языке программирования; - возможности стандартных функций для работы в графическом режиме; - приемы построения графического изображения на экране; - приемы перемещения объекта по экрану по заданной траектории, используя функции сохранения изображения в памяти и вывода на экран из памяти. 2. Разработать алгоритм решения в соответствии с заданием. 3. Составить программу решения задачи. Задание к работе: Составить и выполнить на ЭВМ программу, перемещающую графическое изображение по экрану по заданной траектории в соответствии с вариантом задания, указанного в табл. 14.
Пример выполнения работы
Составить и выполнить на ЭВМ программу, перемещающую графическое изображение по экрану по заданной траектории
Таблица 14
![]() ![]() ![]() ![]()
Продолжение таблицы 4
Продолжение таблицы 14
![]() ![]() ![]() ![]() ![]() ![]()
Программа решения задачи имеет вид:
#include<stdio.h> #include<string.h> #include<conio.h> #include<stdlib.h> #include<graphics.h> #include<math.h> #include<dos.h> /*Данная программа осуществляет перемещение графического изображения по экрану по заданной траектории*/ void main() {int j,gd=0,gm,r=30,startx,starty,x,y,ulx,lrx,uly,lry,size,i,step; /*i,j - переменные цикла for gd-графический драйвер, gm-графический режим r- радиус, startx и starty-начальные координаты ulx,uly- координаты верхнего левого угла прямоугольника, описанного около изображения lrx,lry-координаты нижнего правого угла прямоугольника, описанного около изображения size-размер памяти, который занимает графическое изображение step- смещение */ void *p; //p-указатель на область памяти, где хранится графическое изображение initgraph(&gd,&gm,"C:\\BC"); //инициализация графической системы setfillstyle(SOLID_FILL,2); //установка стиля наполнителя startx=getmaxx()/2-30; //присвоение значений startx, где getmaxx возвращает наибольшее значение //координаты х starty=getmaxy()/2; fillellipse(startx,starty,r,r/3+2); //вычерчивает заполненный текущим наполнителем эллипс ellipse(startx,starty,190,350,r,r/3);//вычерчивает эллипс outtextxy(startx-3,starty,"UFO"); //выводит на экран текстовую строку с позиции (startx,starty) ulx=startx-r-1; lrx=startx+r+1; uly=starty-r/3-8; lry=starty+r/3+3; //расчет координат левого верхнего и правого нижнего углов //сохраняемого графического изображения size=imagesize(ulx,uly,lrx,lry); //расчет объёма буфера в байтах для сохранения //графического изображения p=malloc(size); //выделение динамической памяти _setcursortype(_NOCURSOR); //убирает курсор с экрана getimage(ulx,uly,lrx,lry,p); //сохранение в р графического изображения putimage(ulx,uly,p,1); //вывод сохранённого в р изображения с операцией //наложения ИСКЛЮЧАЮЩЕЕ ИЛИ while(!kbhit()) //в цикле осуществляется перемещение графического изображения { //по заданной траектории до тех пор, пока не нажата любая клавиша x=startx; y=starty; //задание стартовых координат step=10; //задание смещения относительно центра for(j=0;j<=4;j++) //вложенный цикл по заданию номера обхода (5 обходов) из 4 этапов { i=0; while(i<=step) //1 этап (перемещение слева направо) { if(!kbhit()) //если не нажата клавиша, то выводит изображение {putimage(x,y,p,XOR_PUT); //на экран, а затем, путём наложения изображения delay(2); //самого на себя, удаляет его с экрана putimage(x,y,p,XOR_PUT); x++; i++; } else return; //если клавиша нажата, то выход из программы }
i=0; while(i<=step) //2 этап (перемещение сверху вниз) { if(!kbhit()) {putimage(x,y,p,XOR_PUT); delay(2); //приостанавливает выполнение программы на 2 миллисекунды putimage(x,y,p,XOR_PUT); y++; i++; } else return; }
i=0; step+=50; while(i<=step) //3 этап (перемещение справа налево) { if(!kbhit()) {putimage(x,y,p,XOR_PUT); delay(2); putimage(x,y,p,XOR_PUT); x--; i++; } else return; } i=0; while(i<=step) //4 этап (перемещение снизу вверх) { if(!kbhit()) {putimage(x,y,p,XOR_PUT); delay(2); putimage(x,y,p,XOR_PUT); y--; i++; } else return; } step+=50; // увеличение смещения } for(i=0;i<=250;i++) //5 этап (изображение возвращается на { //исходное место в центре экрана) if(!kbhit()) {putimage(x,y,p,XOR_PUT); delay(2); putimage(x,y,p,XOR_PUT); x++; y++; } else return; } putimage(x,y,p,XOR_PUT); delay(2); putimage(x,y,p,XOR_PUT); } getch(); //останов выполнения программы до тех пор, пока //не нажата клавиша closegraph(); //закрытие графического и возвращение к текстовому режиму return; //выход из программы
Лабораторная работа №16
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-19; просмотров: 329; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.221 (0.009 с.) |