0 / 0 / 0
Регистрация: 26.04.2011
Сообщений: 3
1

Имитация часов. Движение по часовой стрелке

26.04.2011, 16:48. Показов 4067. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Помогите пожалуйста.

Дело вот в чем, нужно сделать имитацию часов, пока первая стрелка делает 1 круг, вторая делает два. Фон - рисунок.

Не могу додуматься как стрелки направить в правильную сторону, и как ихнее движение сделать по отдельности.

И если не сложно, подскажите каким способом лучше очищать (что бы движение было видно), просто мигает, а это раздражительно.

Строго не судите, начинающий.

Pascal
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
Program Clock;
USES Crt,graphABC;
var x,y:integer;
    k:integer;
    a,r:real;
 
    pic:string;
 
begin
SetWindowSize(400,400);
 
SetFontStyle(fsBoldItalicUnderline);
SetFontName('Arial');
SetFontColor(clOlive);
 pic:=('devushka3'+'.bmp');
 k:=loadPicture(pic);
 
       a:=0;
 
       SetPenWidth(5);
       Repeat
 
   SetFontSize(14);
   DrawPicture(k,0,0,400,400);
   TextOut(100,380,'"Эмуляция часов"');
   SetFontSize(10);
   SetFontColor(clBlack);
   TextOut(187,70,'"12"');
   TextOut(190,200,'"6"');
   TextOut(255,140,'"3"');
   TextOut(125,140,'"9"');
       
       
       
          a:=a+0.01;
          r:=100;
          SetPenColor(clBlack);
          x:=round(200+r*Cos(Pi*a/180));
            y:=round(200-r*Sin(Pi*a/180));
          Line(200,145,x,y);
 
          a:=a+0.05;
          r:=80;
          SetPenColor(clred);
          x:=round(200+r*Cos(Pi*a/180));
            y:=round(200-r*Sin(Pi*a/180));
          Line(200,145,x,y);
          SetPenColor(clWhite);
          fillrect(0,0,0,0);
 
 
       Until a>=720
       
       
 
end.
Добавлено через 18 минут
Забыл шаг уменьшить, что бы стрелки не так быстро летали....0.001 в самый раз.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2011, 16:48
Ответы с готовыми решениями:

Движение лепестков крутились по часовой стрелке
Мне надо что бы это ромашка, точнее ее лепестки крутились по часовой стрелке! Как сделать не пойму:...

Составить программу, которая будет определять угол часовой стрелки между лучом направленным вверх и часовой стрелке
Даны два целых числа. Первое из них количество часов, второе - количество минут. Составить...

Имитация работы часов с часовой, минутной и секундной стрелкой в виртуальном режиме времени
Здравствуйте. У меня имеется вот такое задание: Составить программу, имитирующую работу часов с...

Движение шарика вдоль прямоугольника,(по касательной) по часовой стрелке.не могу написать поворот по ребру
Движение шарика вдоль прямоугольника,(по касательной) по часовой стрелке.не могу написать поворот...

2
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
26.04.2011, 19:17 2
Вот так можно, стирать стрелки не знаю как, фон не одного цвета, приходится перерисовывать весь экран, мерцание.
Pascal
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
Program Clock;
USES Crt,graphABC;
var xc,yc,x1,y1,x2,y2,r1,r2:integer;
    k:integer;
    a1,a2:real;
    pic:string;
begin
hidecursor;
SetWindowSize(400,400);
SetFontStyle(fsBoldItalicUnderline);
SetFontName('Arial');
SetFontColor(clOlive);
pic:=('cvet.bmp');
k:=loadPicture(pic);
xc:=windowwidth div 2;
yc:=windowheight div 2;
SetPenWidth(5);
a1:=0;a2:=0;
r1:=100; r2:=80;
repeat
DrawPicture(k,0,0,400,400);
TextOut(100,380,'"Эмуляция часов"');
SetFontSize(10);
SetFontColor(clBlack);
TextOut(xc,yc-r1-10,'"12"');
TextOut(xc,yc+r1+10,'"6"');
TextOut(xc+r1+10,yc,'"3"');
TextOut(xc-r1-10,yc,'"9"');
SetPenColor(clBlack);
x1:=xc+round(r1*sin(Pi*a1/180));
y1:=yc-round(r1*cos(Pi*a1/180));
Line(xc,yc,x1,y1);
SetPenColor(clRed);
x2:=xc+round(r2*sin(Pi*a2/180));
y2:=yc-round(r2*cos(Pi*a2/180));
Line(xc,yc,x2,y2);
sleep(1000);
clearwindow;
a1:=a1+12;
a2:=a2+6;
Until keypressed
end.
1
0 / 0 / 0
Регистрация: 26.04.2011
Сообщений: 3
26.04.2011, 20:45  [ТС] 3
Спасибо большое!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2011, 20:45
Помогаю со студенческими работами здесь

Движение фигуры по часовой стрелке
Ребят что сделать чтобы фигура делала движение по кругу по часовой стрелке?? Если можно с примером...

Движение окон по часовой стрелке, не перекрывающих друг друга
В общем, есть такой код. Вроде работает, но если можно ещё больше упростить, подскажите как. Окно...

Написать программу, отображающую движение часовой и минутной стрелок часов
Написать программу,отображающую во временном масштабе 60:1 движение часовой и минутной стрелок...

программа" аналог часов, только стрелки нужно вращать с помощью клавиатуры. Одну по часовой, другую против часовой.
нужно сделать окружность с делением, как часы. И внутри две стрелки. которые двигаются с помощью...

Угол часовой стрелке
Нужно определить под каким углом находится в данный момент часовая стрелка. На вход программе...

Поворот PictureBox по часовой стрелке
Как организовать вращение PictureBox по часовой стрелке ?


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru