Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
#1

Отклик на стрелки - C++

13.10.2012, 16:35. Просмотров 525. Ответов 2
Метки нет (Все метки)

Всем доброго времени суток! У меня было задание сделать в досовской графике следующую штуку:

Масштабирование тетраэдра с уменьшением. Начальный объект находится в нижней правой части экрана, смещение происходит влево вверх. Размер начального объекта и коэффициент уменьшения произвольные.

Вот код программы:

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
 #include<conio.h>
 #include<graphics.h>
 #include<process.h>
 #include<stdio.h>
 #include<dos.h>
 #include<stdlib.h>
 
 
 main()
{
 
   int gdriver = VGA, gmode = VGAMED, errorcode;
   int x1,x2,x3,x4,y1,y2,y3,y4,i;
 
   initgraph(&gdriver, &gmode, "C:\BORLANDC\BGI" );
 
 
   errorcode = graphresult();
   if (errorcode != grOk)
   {
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1);
   }
 
   setviewport(50, 50, getmaxx()-50, getmaxy()-50, 1);
   clearviewport();
   x1=404;y1=210;
   x2=494;y2=224;
   x3=508;y3=194;
   x4=474;y4=138;
 
 
   // TETR--
   setcolor(12);
   line(x1,y1,x2,y2);
   line(x1,y1,x3,y3);
   line(x2,y2,x3,y3);
 
   line(x1,y1,x4,y4);
   line(x2,y2,x4,y4);
   line(x3,y3,x4,y4);
 
   i=8
   ;
  while(i<16)
  {
   i++;
   getch();
   x1=x1*0.8 ;x2=x2*0.8;x3=x3*0.8;x4=x4*0.8;
   y1=y1*0.8;y2=y2*0.8;y3=y3*0.8;y4=y4*0.8;
 
   setcolor(i);
 
   line(x1,y1,x2,y2);
   line(x1,y1,x3,y3);
   line(x2,y2,x3,y3);
 
   line(x1,y1,x4,y4);
   line(x2,y2,x4,y4);
   line(x3,y3,x4,y4);
}
 
   closegraph();
   return 0;
   }
Вопрос следующий: почему при выполнении программы на нажатие стрелки появляется стразу две фигуры, а не одна, как на всех остальных клавишах. Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2012, 16:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отклик на стрелки (C++):

Объясните мне что от меня требуется! Спасибо за отклик - C++
Квадрат разбит на 4^k равновеликих квадратных клеток. Квадрат перегибается поочередно относительно вертикальной (правая половина...

движение стрелки - C++
привет всем) ребят можете помочь, я только-только недавно стал программировать, и вот такая задача попалась нарисовать ролик (на С++...

Стрелки в меню - C++
Доброго времени суток, господа! Суть вопроса вот в чём - есть меню. Надо реализовать переключение в менюхе не с помощью циферок, а...

Стрелки часов - C++
Доброго времени суток! Нужно написать такую программу: Пользователь вводит угол часов стрелки RT (в радианах 0&lt;=RT&lt;2pi )(угол...

Координаты наконечника стрелки - C++
известны координаты начала и конца стрелки (х1, у1) (х2, у2). Рисую эту прямую но нужно чтобы это была не прямая а стрелка. Только вот как...

Считывание нажатий на стрелки - C++
Подскажите, что нужно написать чтобы можно было определять какая из стрелок была нажата?? То беж: if &lt;нажата стрелка влево&gt; then...

2
alexcoder
1546 / 691 / 90
Регистрация: 03.06.2009
Сообщений: 3,670
Завершенные тесты: 1
13.10.2012, 19:29 #2
Не проверял, но есть подозрение: getch при нажатии стрелок, функциональных и расширенных клавиш возвращает сначала 0, а затем (при следующем вызове) скан-код нажатой клавиши.
Попробовать getch заменить на:
C
1
if(getch()==0)getch();
0
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
13.10.2012, 19:42  [ТС] #3
alexcoder, спасибо, видимо так и есть!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2012, 19:42
Привет! Вот еще темы с ответами:

Странная реакция на нажатие стрелки - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { char a; for(;;){ a=getch(); ...

Реализация управления клавишами(стрелки) - C++
Всем привет. Собственно в чем вопрос. Пишу простенькую базу данных студентов и хочу реализовать выбор в меню как в биосе. Тобишь, у...

Стрелки после cout и cin - C++
Здравствуйте! Недавно начал изучать язык С++, и решил попробовать написать чёнить. Решил сделать программу ищущую разницу между чисел ...

Поворот матрицы по часовой стрелки - C++
Задан квадратный массив А из N строк и N столбцов. Произвести «поворот по часовой стрелке» массива таким образом, чтобы элементы 1 строки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru