Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 08.07.2019
Сообщений: 12
1

Стрелка крутится неправильно

27.11.2019, 22:36. Показов 348. Ответов 7

Author24 — интернет-сервис помощи студентам
задал скорость поворота 7 градусов за цикл, задержку в цикле 125 мс, что вместе равно 56 градусов в секунду или приблизительно 1 рад/сек, а при запуске крутится намного быстрее. Что не так в коде?
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
#include <graphics.h>
#include <cmath>
#include <ctime>
#include <windows.h>
#include <iostream>
#include <conio.h>
using namespace std;
int radius = 100, cx, cy, i=0;
 
void lined(int i)
{
    cx = getmaxx()/2;
    cy = getmaxy()/2;
    setcolor(1);
    setlinestyle(0, 0, 3);
    line(cx-radius*cos(i), cy-radius*sin(i), cx + radius*cos(i), cy + radius*sin(i));
}
void draw()
{
    for(i = 0;; i+=7)
    {
    lined(i);
    delay(125);
    cleardevice();
    }
}
int main()
{
    initwindow(400, 300);
    while(1)
    {
    draw();
    }
    closegraph();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2019, 22:36
Ответы с готовыми решениями:

На экране изобразить стрелу и шар. Организовать управление стрелой, для попадания в шар знаками "стрелка влево", "стрелка вправо"
На экране изобразить стрелу и шар. Организовать управление стрелой, для попадания в шар знаками...

Проверьте задачку по циклам, неправильно работает. [думаю что неправильно]
Спасибо что решили зайти. Задание выгладит так: http://*******/PW95p А результат выплнения:...

Неправильно работает цикл for, и функции работают неправильно
1) Неправильно работает цикл for(k=0...). Входит только 1 раз, дальше вылетает. Делал пошаговую...

Работа с клавишами стрелка и т.д
Народ, помогите. Как написать программу типа if(&quot;нажата клавиша вверх&quot;) { cout &lt;&lt; 500; }...

7
фрилансер
5499 / 5095 / 1047
Регистрация: 11.10.2019
Сообщений: 13,346
27.11.2019, 23:04 2
pashak1207, нужно задаться функцией

угол(текущее_время)

тогда не будет никакой зависимости от задержек и FPS
0
Just Do It!
3841 / 2286 / 636
Регистрация: 23.09.2014
Сообщений: 7,072
Записей в блоге: 3
27.11.2019, 23:34 3
pashak1207,
сделайте так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void lined(int a)
{   float i = (6.28f/7.f) * a;
    
    cx = getmaxx()/2;
    cy = getmaxy()/2;
    setcolor(1);
    setlinestyle(0, 0, 3);
    line(cx-radius*cos(i), cy-radius*sin(i), cx + radius*cos(i), cy + radius*sin(i));
}
void draw()
{
    for(i = 0;; i++)
    {
    lined(i);
    delay(125);
    cleardevice();
    }
}
1
0 / 0 / 0
Регистрация: 08.07.2019
Сообщений: 12
28.11.2019, 00:02  [ТС] 4
Спасибо, но можете объяснить 2 строчку?

Добавлено через 30 секунд
Спасибо, но можете объяснить 2 строчку
0
Just Do It!
3841 / 2286 / 636
Регистрация: 23.09.2014
Сообщений: 7,072
Записей в блоге: 3
28.11.2019, 00:16 5
pashak1207,
все очень просто,
в синус/косинусах 360 градусов это 2 умножить на ПИ.
ПИ это 3.14.....

Добавлено через 2 минуты
так как вы секунду поделелили на 7 частей,
то и полный круг тоже надо поделить на 7 частей

далее на вход приходят тики.
каждый тик это 360 / 7 градусов на круге.
0
0 / 0 / 0
Регистрация: 08.07.2019
Сообщений: 12
28.11.2019, 00:17  [ТС] 6
То есть в cos()/sin() нужно вводить данные не напрямую в градусах, а через Пи?
0
1291 / 908 / 479
Регистрация: 05.12.2013
Сообщений: 3,073
28.11.2019, 00:29 7
Цитата Сообщение от pashak1207 Посмотреть сообщение
То есть в cos()/sin() нужно вводить данные не напрямую в градусах, а через Пи?
Это называется радианы
0
Just Do It!
3841 / 2286 / 636
Регистрация: 23.09.2014
Сообщений: 7,072
Записей в блоге: 3
28.11.2019, 00:45 8
Цитата Сообщение от pashak1207 Посмотреть сообщение
То есть в cos()/sin() нужно вводить данные не напрямую в градусах, а через Пи
да ради бога можете и напрямую
Код
float a = (2*PI/360) * x;

x задается в градусах
0
28.11.2019, 00:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2019, 00:45
Помогаю со студенческими работами здесь

Квадрат,круг,стрелка,ромб
Здравствуйте,помогите написать программу,которая выводит на монитор следующие...

Мышь logitech. Колёсико крутится вниз, но не крутится вверх
Здравствуйте, мышь logitech b100 проводная, при прокрутке колёсика скроллинг вниз идёт успешно,а...

Какова вероятность, что у стрелка А попаданий будет на одно больше, чем у стрелка Б?
Доброго времени суток всем! Есть задача: &quot;Стрелки А и Б попадают каждый в свою мишень с...

Написание простого скрипта (Стрелка влево\стрелка вправо)
Если кому-нибудь это не сложно, написать скрипт, который в активном окне нажимает поочередно...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru