Графика в Си/С++. В графическом режиме в Си



бет13/13
Дата06.01.2022
өлшемі387 Kb.
#14948
1   ...   5   6   7   8   9   10   11   12   13
Байланысты:
графика

графическом режиме в Си координата х увеличивается слева направо,координата y увеличивается сверху вниз.  Чтобы задать цвет заполнения графических фигур в си используется оператор setfillstyle (1,номер цвета). Чтобы стереть графический объект в си, можно в качестве цвета передать цвет фона.

Возможный вариант решения программы анимации в си:


#include
#include
// процедура отображения автомобиля с координатами левого верхнего угла x, y  и цветом cvet
void avto (int x, int y, int cvet)
{
setfillstyle (1,cvet );  //  устанавливаем  вид заливки 1 -полный,  цвет заливки  cvet
bar(x, y, x+100, y+20);// закрашенный прямоугольник  нижняя часть кузова
bar(x+20, y, x+70, y-20);// закрашенный прямоугольник верхняя часть кузова
setcolor(cvet); // устанавливаем  цвет  колеса
circle(x+20, y+30, 10); //  левое колесо окружность ниже кузова
circle(x+70, y+30, 10); // правое колесо окружность  ниже кузова
setfillstyle (1,cvet);  //  устанавливаем  вид заливки полный - 1 цвет cvet
floodfill(x+20,y+30,cvet); // закрашиваем круг левого колеса до границы круга  цветом cvet
floodfill(x+70,y+30,cvet); // закрашиваем круг левого колеса до границы круга  цветом cvet
}
main()
{
      int i; // переменная счетчик цикла
      int x; // координата x  автомобиля
      int y; // коордианта y автомобиля
      int v; // сокрость автомобиля
x=50;
y=200;
v=1;
initwindow(500, 500);// инициализируем графическое окно
// движемся
for (i=1; i<300; i++)
{  
    // отрисовываем автомобиль  заданным цветом 2
    avto(x,y, 2);
    // пауза
    delay(20);
     // стираем автомобиль - рисуем его цветом фона 0
    avto(x,y, 0);
     // увеличиваем координату x согласно скорости
    x=x+v;   
}
avto(x,y, 2);
getch();
closegraph();
}

На заметку:


1. Анимация объекта задается алгоритмом 
Цикл движения
рисуем объект
пауза
стирание
изменение координат

Задания для самостоятельной работы:


1. Нарисуйте свой объект измените процедуру avto. Попробуйте сделать движение замедленным или ускоренным, т.е. изменяйте в цикле движения скорость.
2. Нарисуйте анимацию двух объектов.Для  этого для каждого объекта введите свои переменные для координат и скорости в цикле 
движения вызывайте процедуры рисования и стирания для каждого объекта, также необходимо организовать изменение координат для каждого объекта.

Достарыңызбен бөлісу:
1   ...   5   6   7   8   9   10   11   12   13




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет