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

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

Войти
Регистрация
Восстановить пароль
 
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
#1

Дайте пожалуйста формулу для движения стрелки в часах - C++

30.08.2013, 04:14. Просмотров 1039. Ответов 12
Метки нет (Все метки)

Хочу написать программку часы, но проблема в том что я ни как не могу понять какая система лежит в движении стрелки в часах.

вообщем какая формула есть чтобы линия шла по кругу, прощу не писать код программы а просто обяснить или дать ссыль на статью об этом. (если что не понятно спрашивайте обясню еще ясней).
P.S думаю те люди которые писали программу часы уже поняли что я имел ввиду.

Добавлено через 1 час 47 минут
есть стрелка, как заставить её вращаться внутри окружности???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2013, 04:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дайте пожалуйста формулу для движения стрелки в часах (C++):

Дайте алгоритм, пожалуйста =)) - C++
Связной граф задан матрицей смежности. Написать программу для поиска всех циклов графа. Я уже сам задал матрицу смежности, а что дольше...

Дайте пожалуйста ответы - C++
1) Почему при объявлении матрицы с одновременной инициализацией первые скобки можно оставить пустыми, а вторые нет? 2) Как вывести...

Дайте, пожалуйста, контрпримеры - C++
Задача №93 в acmp задание в тему

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

Дайте , пожалуйста, подсказки по коду - C++
Добрый день! Подскажите, пожалуйста, по коду ниже. Это несложный код из книги Р. Лафоре. #include <iostream> using namespace std; ...

Написать програму для движения мерцающего круга по эллипсу (анимация движения) - C++
Добрый день,передо мной стоит задача : Написать програму для движения мерцающего круга по эллипсу.Проблема в том,что не могу сообразить как...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
aleks_pilipenko
)))
604 / 181 / 9
Регистрация: 31.12.2009
Сообщений: 2,616
Записей в блоге: 3
30.08.2013, 04:56 #2
x0+r2*Math.Sin(3.14F/30*sek), y0-r2*Math.Cos(3.14F/30*sek));

x0,y0 - центр циферблата, r2 - длина стрелки, sek - время в секундах...
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
30.08.2013, 05:27  [ТС] #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int w=400, h=400;
int i=0;
int R=2;
 
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0, 1.0, 0.0);
glBegin(GL_LINES);
glVertex2i(w/2, h/2);
glVertex2i(i+2*sin(3.14F/30*60)+i,i-2*cos(3.14F/30*60)); // ЧТО ТУТ НАДО СДЕЛАТЬ ЧТОБЫ СТРЕЛКА ВРАЩАЛАСЬ ВОКРУГ ЦЕНТРА???
glEnd();
glFlush();
}
 
void timer(int)
{
    i++;
    display();
    glutTimerFunc(10,timer,0);
}
ITDeveloper
85 / 85 / 5
Регистрация: 14.01.2011
Сообщений: 263
30.08.2013, 06:05 #4
В суть вникать не буду, но на вскидку: x0,y0 - координаты центра, а у вас там переменная i, которая меняет свое значение, затем sec -кол-во секунд - имеется ввиду текущее количество секунд, а у вас там константа 60!
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
30.08.2013, 08:06  [ТС] #5
не получается чтото, может лучше sin и cos использовать?

Добавлено через 49 минут
Почему стрелка крутиться не в том месте и радиус у неё маленький?

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
#define _USE_MATH_DEFINES
#include <iostream>
#include <gl\glut.h>
using namespace std;
 
int w=400, h=400;
int sek=1;
struct Vec
{
    int x1;
    int y1;
    int x2;
    int y2;
    Vec()
    {
        x1=w/2;
        y1=h/2;
    }
};
Vec vec;
 
 
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(0.0, 1.0, 0.0);
    glBegin(GL_LINES);
    glVertex2i(vec.x1, vec.y1);
    glVertex2i((vec.x1+30)+2*sin(M_PI/30*sek), (vec.y1+30)-2*cos(M_PI/30*sek));
    glEnd();
    glFlush();
}
 
void timer(int)
{
    sek++;
    display();
    glutTimerFunc(10,timer,0);
}
 
int main()
{
    glutInitDisplayMode(GLUT_SINGLE || GLUT_RGB);
    glutInitWindowSize(w,h);
    glutInitWindowPosition(200,50);
    glutCreateWindow("pinbol");
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(0, w, 0, h);
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glutDisplayFunc(display);
    timer(0);
    glutMainLoop();
}
ITDeveloper
85 / 85 / 5
Регистрация: 14.01.2011
Сообщений: 263
30.08.2013, 08:39 #6
Цитата Сообщение от GoldDragon Посмотреть сообщение
стрелка крутиться не в том месте
Уточните! Или скрин!
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
30.08.2013, 08:53  [ТС] #7
вот
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
30.08.2013, 08:57  [ТС] #8
Ошибка в этих расшетах где то

C++
1
glVertex2i((vec.x1+30)+2*sin(M_PI/30*sek), (vec.y1+30)-2*cos(M_PI/30*sek));
ITDeveloper
85 / 85 / 5
Регистрация: 14.01.2011
Сообщений: 263
30.08.2013, 08:59 #9
а переменные vec.x1 и vec.y1 и переменные h и w еще где то меняются в проекте?
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
30.08.2013, 10:37  [ТС] #10
нет
aleks_pilipenko
)))
604 / 181 / 9
Регистрация: 31.12.2009
Сообщений: 2,616
Записей в блоге: 3
30.08.2013, 15:51 #11
я после твоего вопроса минут за 20 на C# написал полностью все три стрелки, могу код выложить, если интересно...
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
30.08.2013, 16:30  [ТС] #12
Спасибо формула которую вы дали мне подходит, программа работает как надо, тему можно закрывать.
Dmitriy_M
1342 / 1223 / 112
Регистрация: 20.03.2009
Сообщений: 4,406
Записей в блоге: 11
30.08.2013, 17:19 #13

тоже мне радиотехник Полярная система координат
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2013, 17:19
Привет! Вот еще темы с ответами:

Функция replace(). Дайте рекомендации, пожалуйста - C++
Добрый вечер! Написал не сложную функцию replace, но чувствую, что с утечками памяти тут не всё хорошо. Не могли бы дать рекомендации,...

Дайте пожалуйста ссылку на сайт с командами - C++
Помогите вспомнить на сайт с командами и функциями для С++, точно не помню на кажется эта страница была на сайте Microsoft, но что то не...

Дайте,пожалуйста, совет по поводу задания - C++
Есть односвязный список, нужно в і-ую позицию вставить элемент, как лучше бы это сделать? Создать вспомогательный указатель и с его помощью...

Дайте пожалуйста рабочий пример регулярного выражения c++ - C++
Мне нужно что-то типа AnsiString regexp = /&lt;b&gt;(.*)&lt;\/b&gt;/i; AnsiString str = &quot;&lt;b&gt;Hello World!&lt;/b&gt;&quot;; preg_match(str, pegexp, result); ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.08.2013, 17:19
Ответ Создать тему
Опции темы

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