Форум программистов, компьютерный форум CyberForum.ru

Управляемая анимация в C++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Nikakoy
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 6
24.03.2013, 18:28     Управляемая анимация в C++ #1
Нарисовать схему электрической цепи, чтобы ключи при нажатии на соответствующие цифры открывались и закрывались, при включеном ключе ток текет - провода зеленые, лампочки загораются в соответствие с законами физики, батареи зеленым цветом.
Миниатюры
Управляемая анимация в C++  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 18:28     Управляемая анимация в C++
Посмотрите здесь:

C++ Анимация
C++ Анимация.
C++ анимация в С++
C++ Анимация в С++
Анимация C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hofmn
Helter Skelter
 Аватар для hofmn
61 / 61 / 1
Регистрация: 19.09.2012
Сообщений: 133
24.03.2013, 18:45     Управляемая анимация в C++ #2
Цитата Сообщение от Nikakoy Посмотреть сообщение
Нарисовать схему электрической цепи
В консоли? Как вы себе это представляете?
Nikakoy
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 6
24.03.2013, 18:49  [ТС]     Управляемая анимация в C++ #3
Цитата Сообщение от hofmn Посмотреть сообщение
В консоли? Как вы себе это представляете?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <graphics.h>       // для работы с графикой
#include <conio.h>          // для работы getch()
 
 
// ПРОЦЕДУРА ЛИНОВКИ ПОЛЯ НА КЛЕТКИ
   void Setka ( int k, int L, int H, int dx )
       {
     int x = 0; int y = 0;
     
     if ( k == 1 )
         {
       // Рисование сетки - серый цвет               
       while ( x <= L )
           {
         setcolor ( COLOR ( 60, 60, 60 ) );
         line ( x, 0, x, H ); 
         x = x + dx;  
           }
       while ( y <= H )
           {
         setcolor ( COLOR ( 60, 60, 60 ) );
         line ( 0, y, L, y ); 
         y = y + dx;  
           }           
         }                
     else
         {
       // Стирание сетки - черный цвет                           
       while ( x <= L )
           {
         setcolor ( 0 );
         line ( x, 0, x, H ); 
         x = x + dx;  
           }
       while ( y <= H )
           {
         setcolor ( 0 );
         line ( 0, y, L, y ); 
         y = y + dx;  
           }                      
         }                                             
       }        
// -------------------------------------------
// ПРОЦЕДУРА АНИМАЦИИ ВЫКЛЮЧАТЕЛЯ
   void Key_G ( int k, int num, int x, int y )
       {
     char numK [3];
 
     if ( k == 1 )
         { 
       // Стирание наклонной - черный цвет         
       setcolor ( 0 );                                   
       line ( x, y - 1, x + 33, y - 22 );               
       // Рисование прямой - зеленый цвет
       setcolor ( 10 );     
       line ( x, y, x + 36, y );
       setfillstyle (1, 10);
       circle ( x, y, 3 );
       floodfill ( x - 1, y - 1, 10);
       circle ( x + 40, y, 3 );       
       floodfill ( x + 40, y, 10);       
         }
     else
         {
       // Стирание прямой - черный цвет                          
       setcolor ( 0 );                    
       line ( x, y, x + 36, y );
       // Рисование наклонной - белый цвет                                     
       setcolor ( 15 );                              
       line ( x, y - 1, x + 33, y - 22 );
       setfillstyle (1, 15);
       circle ( x, y, 3 );
       floodfill ( x - 1, y - 1, 15);       
       circle ( x + 40, y, 3 );       
       floodfill ( x + 40, y, 15);              
         }  
       // Вывод клавиши управления для выключателя - желтый цвет             
       setcolor (14);
       sprintf ( numK, "%d", num );
//       outtextxy ( x + 12, y + 3, "K");                  
       outtextxy ( x + 16, y + 3, numK );                  
       }                  
// -------------------------------------------
// ПРОЦЕДУРА АНИМАЦИИ ГОРИЗОНТАЛЬНОГО СОЕДИНЕНИЯ
   void Lin_G ( int k, int xn, int yn, int L )
       {
       int i, n;
     if ( k == 1 )
         {
       // Рисование отрезка - зеленый цвет                                       
       setcolor ( 10 );
       line ( xn, yn, xn + L, yn );       
         }
     else
         {
       // Рисование отрезка - белый цвет                        
       setcolor ( 15 );
       line ( xn, yn, xn + L, yn );             
         }       
       }
// -------------------------------------------
 
// ОСНОВНОЙ БЛОК ПРОГРАММЫ
int main()
{
  int L, H, code;
  int  keyS = 0, key12 = 0; 
  int num01 = 1, key01 = 0; 
  int num02 = 2, key02 = 0;    
  L = 500; H = 500;
  initwindow ( L, H );                         // Графическое окно
  code = 0;
  
    while ( code != 27 )
        {
        if ( kbhit() ) code = getch();
      if ((( code == 115 ) || ( code == 83 )) && ( keyS == 0 )) { keyS = 1; code = 0; }      
      if ((( code == 115 ) || ( code == 83 )) && ( keyS == 1 )) { keyS = 0; code = 0; }
      if (( code == 49 ) && ( key01 == 0 )) { key01 = 1; code = 0; }      
      if (( code == 49 ) && ( key01 == 1 )) { key01 = 0; code = 0; }
      if (( code == 50 ) && ( key02 == 0 )) { key02 = 1; code = 0; }      
      if (( code == 50 ) && ( key02 == 1 )) { key02 = 0; code = 0; }
    // ВЫЗОВ ПРОЦЕДУРЫ - ЛИНОВАНИЕ ПОЛЯ
//     Setka ( keyS, L, H, 10 );                   // Сетка для удобства подсчета 
    // ВЫЗОВ ПРОЦЕДУР - АНИМИРОВАННЫЙ КЛЮЧ                        
    Key_G ( key01, num01, 150, 50 );               // Длина выключателя равна 40 единиц 
    Key_G ( key02, num02, 250, 50 );               // Длина выключателя равна 40 единиц
      if ( key01 && key02 ) key12 = 1; else key12 = 0; 
    // ВЫЗОВ ПРОЦЕДУР - АНИМИРОВАННЫЕ СОЕДИНЕНИЯ
    Lin_G ( key01, 190, 50, 60 );                  // Длина соединения равна  60 единиц                 
    Lin_G ( key12, 290, 50, 150 );                 // Длина соединения равна 150 единиц    
 
        }  
 
 
     
  // Задержка графического окна
  
//  getch();
  closegraph();
}
Вложения
Тип файла: txt Новый текстовый документ.txt (4.7 Кб, 11 просмотров)
Nikakoy
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 6
24.03.2013, 18:50  [ТС]     Управляемая анимация в C++ #4
Цитата Сообщение от hofmn Посмотреть сообщение
В консоли? Как вы себе это представляете?
Это пример кода
Нужно продолжить и нарисовать то что во вложении - рисунок
Yandex
Объявления
24.03.2013, 18:50     Управляемая анимация в C++
Ответ Создать тему
Опции темы

Текущее время: 05:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru