Компьютерная графика. Часы

Автор: Пользователь скрыл имя, 13 Декабря 2011 в 13:16, курсовая работа

Краткое описание

Компьютерная графика на сегодняшний день уже вполне сформировалась как наука. Существует аппаратное и программное обеспечение для получения разнообразных изображений – от простых чертежей до реалистичных образов естественных объектов. Компьютерная графика используется практически во всех научных и инженерных дисциплинах для наглядности восприятия и передачи информации. Знание её основ, в наше время, необходимо любому ученому и инженеру. Она властно вторгается в бизнес, медицину, рекламу, индустрию развлечений и многие другие области.

Файлы: 1 файл

курсовая.doc

— 98.50 Кб (Скачать)

    После выводим системную дату :

           settextstyle(0,0,1);   outtextxy(290,310,g);

          if((d.da_day)<10)     outtextxy(280,322,gg);

           else outtextxy(283,322,gg); , если день больше 10 то смешаем координаты, чтоб отображались все символы.  Для того чтобы изобразить циферблат используем circle:

      circle(320,240,215);   setfillstyle(9,8);

      floodfill(320,240,WHITE);  circle(320,240,200);

      setfillstyle(1,0);  floodfill(320,240,WHITE);

 Выводим две окружности , радиус одного меньше другого закрашиваем каждую окружность с помощью функций floodfill. 

    void outtextxy(int x, int y, const char* Текст);

Устанавливает указатель вывода в точку с  координатами (х, у) и выводит от нее  строку Текст, при этом указатель  вывода своего положения не меняет, т. е. остается в точке с координатами (х, у).Цвет выводимых символов можно  задать при помощи функции setcolor, шрифт — settextstyle. 
Заголовочный файл: <graph.h> .

 settextstyle(4,0,4);   setcolor(15);

 o(304,64,"12");    o(395,87,"1"); ,печатаем цифры от 1 до 12 по окружности.

В цикле do …. While вызывается функция date() и выводиться системная дата и время(в цифровом виде), используя  getdate(&d);

    sprintf(gg,"%02d.%02d.%d",d.da_day,d.da_mon,d.da_year);

    settextstyle(0,0,2); date();

    int scanf(const char* Формат, СписокАмресовПеременных);

    Вводит  с клавиатуры значения переменных, в соответствии с указанным спецификатором формата. Первая переменная получает значение в соответствии с первым спецификатором формата, вторая — со вторым и т. д.  
В качестве параметра функции scanf должны передаваться адреса переменных, а не их имена.

Спецификатор Вводит
%i %d Десятичное  число со знаком
%u Беззнаковое целое  десятичное число
%f %e Дробное число
%s Строка символов
%c Символ

void settexstyle(int Шрифт, int Ориентация, int Размер);

    Устанавливает шрифт, размер и ориентацию текста, выводимого функциями outtextxy и outtext. В качестве параметра Шрифт можно использовать одну из перечисленных ниже констант.

Константа Значение Шрифт
DEFAULT FONT 0 Стандартный. Каждый выводимый символ формируется в квадрате размером 8 на 8 пикселов.
TRIPLEX FONT 1 Шрифт Triplex
SMALL FONT 2 Мелкий
SANSSERIF FONT 3 Шрифт SansSerif
GOTHIC FONT 4 Готический
 

Draw() – выводит часовые, минутные и секундные стрелки

line(320,240,320+120*cos(a1),240+120*sin(a1))…., используя системное время компьютер поворачиваем каждую стрелку на нужный угол:

    a1=(t.ti_hour%12+t.ti_min/60.0+t.ti_sec/3600.0)*pi/6-pi/2;

    a2=(t.ti_min+t.ti_sec/60.0)*pi/30-pi/2;

    a3=t.ti_sec*pi/30-pi/2; 

Используя :

sec=t.ti_sec;   if((t.ti_sec==0) && (t.ti_min==0)) printf("\a");

  do {  gettime(&t); }

  while (sec==t.ti_sec);

  setcolor(0);   draw();

  date();  } закрашиваем в черный цвет стрелки, добиваемся эффекта движенья стрелок.

  

  while(!kbhit()) – ждем нажатья кнопки, после выход

  closegraph(); - завершаются действия с графикой и выход из графического режима . 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

3. Листинг программы 

#include <stdio.h>

#include <conio.h>

#include <dos.h>

#include <math.h>

#include <time.h>

#include <graphics.h>

#define o outtextxy

int gd=0,gm,i;

char g[20],gg[20], tau[7];

float a1,a2,a3,pi=3.1415925;

struct time t;

struct date d;

int sec,r;

void logos()

{settextstyle(0,0,2);

sprintf(tau,"TauRolex09");

o(240,155,tau);}

void draw()

{line(320,240,320+120*cos(a1),240+120*sin(a1));

  line(320,240,320+150*cos(a2),240+150*sin(a2));

  line(320,240,320+175*cos(a3),240+175*sin(a3));}

void date()

{settextstyle(0,0,1);

  outtextxy(290,310,g);

  if((d.da_day)<10) outtextxy(280,322,gg);

  else outtextxy(283,322,gg);}

void main()

{  initgraph(&gd,&gm," ");

  circle(320,240,215);

  setfillstyle(9,8);

  floodfill(320,240,WHITE);

  circle(320,240,200);

  setfillstyle(1,0);

  floodfill(320,240,WHITE);

  for(i=0;i<12;i++)

   {a1=i*pi/6;

    line(320+180*cos(a1),240+180*sin(a1),320+200*cos(a1),240+200*sin(a1));} gettime(&t); 

  do {settextstyle(4,0,4);

    setcolor(15);

    o(304,64,"12");     o(395,87,"1");

    o(453,144,"2");    o(482,225,"3");

    o(450,323,"4");    o(395,373,"5");

    o(312,388,"6");    o(238,356,"7");

    o(181,306,"8");    o(152,226,"9");

    o(175,142,"10");     o(233,85,"11");

    circle(320,240,3);     getdate(&d);

    sprintf(gg,"%2d.%02d.%d",d.da_day,d.da_mon,d.da_year);

    settextstyle(0,0,2);

    a1=(t.ti_hour%12+t.ti_min/60.0+t.ti_sec/3600.0)*pi/6-pi/2;

    a2=(t.ti_min+t.ti_sec/60.0)*pi/30-pi/2;

    a3=t.ti_sec*pi/30-pi/2;

    sprintf(g,"%02d:%02d:%02d",t.ti_hour,t.ti_min,t.ti_sec);

     date();       draw();        logos();

  sec=t.ti_sec;   if((t.ti_sec==0) && (t.ti_min==0)) printf("\a");

  do {  gettime(&t); }

  while (sec==t.ti_sec);

  setcolor(0);   draw();

  date();  }

  while(!kbhit());

  getch();

  closegraph(); } 
 
 
 
 
 
 

Литература: 

  1. С.В. Бахвалов, Л.И. Бабушкин, В.П. Иваницкая  

         «Аналитическая геометрия». 

  1. Б.И. Березин, С.Б. Берзин «Начальный курс С и С++».
 
  1. Бьерн Страуструп – «Язык программирования C++»
 
  1. Н. Тюкачев, Ю. Свиридов «Delphi 5 создание мультимедийных приложений»
 
  1. П. Франка «С++ учебный курс» 

Информация о работе Компьютерная графика. Часы