Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
3 / 1 / 0
Регистрация: 27.01.2014
Сообщений: 42
1

Две точки на одной окружности

23.08.2018, 09:31. Показов 1932. Ответов 5
Метки qt (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, товарищи.
У меня нет сил. Я третий день сижу над одной вещью и не могу не как сделать. Мне надо сделать две точки, и заставить их двигаться по кругу при зажатии кнопки мыши в разное направление. Но при этом чтоб они лежали на одной оси. Я перечитал документация, но не могу. простите. Я уже у Вас тут спрашивал советы, но не справился. Помогите кодом, и пожалуйста не судите строго, потому что учусь сейчас только, а помощь попросить могу только у Вас.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.08.2018, 09:31
Ответы с готовыми решениями:

Определить лежат ли две точки на одной окружности с началом в центре координат
2-Заданы координаты двух точек. Определить лежат ли они на одной окружности с началом в центре...

Постройте две окружности, имитируя движение одной окружности по другой
Постройте на экране компьютера две окружности радиусов R1, R2 разных цветов, имитируя движение...

Найти две такие точки, чтобы две окружности с центрами в точках удовлетворяли условию
есть такая задача, которую сейчас думаю как решить: 4) Дано множество точек на плоскости. Найти две...

Модуль Graph. Изобразить две концентрических окружности и движущиеся по ним две точки в противоположных направлениях
Изобразить две концентрических окружности и движущиеся по них две точки в противоположных...

5
661 / 662 / 106
Регистрация: 29.05.2015
Сообщений: 3,967
23.08.2018, 14:22 2
Кнопки мыши нужно "зажать в разное направление", и "чтоб они лежали на одной оси"?
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
23.08.2018, 15:11 3
Решаешь систему уравнений окружности и прямой. Причем тут Qt непонятно.
0
661 / 662 / 106
Регистрация: 29.05.2015
Сообщений: 3,967
23.08.2018, 16:40 4
И даже проще. Что-бы точки двигались по окружности и находились на одной прямой, нужно для координат брать синус и косинус от +- одинакового угла. И соответственно радиус R.

А что-бы оформить это в виде оконного приложения, на котором наглядно видно, как эти точки по окружности перемещаются, нужно такое приложение написать. А для этого нужно знать хотя-бы основы Qt и Си.
0
223 / 188 / 97
Регистрация: 15.04.2018
Сообщений: 718
24.08.2018, 23:27 5
Лучший ответ Сообщение было отмечено Dye как решение

Решение

Писал пальцами левой ноги на телефоне, за код не ругать

Я сделал это с текстовым вариантом, дабы не мучатся с отрисовками, вы можете заняться этим, материалов полно

Зажимаешь ЛКМ и начинают крутится, отпускаешь - перестают

Как выглядит:

C++ (Qt)
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
//h file
#ifndef FORDYE_H
#define FORDYE_H
 
#include <QWidget>
#include <QTimer>
#include <QTime>
#include <QLabel>
#include <QtMath>
#include <QMouseEvent>
 
namespace Ui {
class forDye;
}
 
class forDye : public QWidget
{
    Q_OBJECT
 
public:
    explicit forDye(QWidget *parent = 0);
    ~forDye();
 
private:
    double delta = 0;
    QLabel *a;
    QLabel *b;
    QTimer *timer;
    int pos = 200;
    int radius = 100;
    Ui::forDye *ui;
 
private slots:
    void mousePressEvent(QMouseEvent *e);
    void mouseReleaseEvent(QMouseEvent *e);
    void upd();
};
 
#endif // FORDYE_H
C++ (Qt)
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
//cpp file
#include "fordye.h"
#include "ui_fordye.h"
 
forDye::forDye(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::forDye)
{
    ui->setupUi(this);
    a = new QLabel("•", this);
    b = new QLabel("•", this);
    QLabel *c = new QLabel("•", this);
 
 
    a->setStyleSheet("color: green; font-size: 20pt;"); //Задаем им вминяемый вид
    b->setStyleSheet("color: red; font-size: 20pt;");
    c->setStyleSheet(" font-size: 15pt;");
    c->move(pos, pos);
 
    delta = 0;
    timer = new QTimer();
    timer->setInterval(20);
    connect(timer, SIGNAL(timeout()), this, SLOT(upd()));
 
}
 
forDye::~forDye()
{
    delete ui;
}
 
void forDye::upd()
{
    a->move(QPoint(pos+radius*cos(delta), pos+radius*sin(delta)));
    b->move(QPoint(pos-radius*cos(delta), pos+radius*sin(delta)));
    delta += 0.04; //скорость вращения
}
 
void forDye::mousePressEvent(QMouseEvent *e)
{
    timer->start();
}
 
void forDye::mouseReleaseEvent(QMouseEvent *e)
{
    timer->stop();
}
1
3 / 1 / 0
Регистрация: 27.01.2014
Сообщений: 42
27.08.2018, 13:24  [ТС] 6
mvngr, Спасибо большое)
0
27.08.2018, 13:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.08.2018, 13:24
Помогаю со студенческими работами здесь

Лежат ли точки на одной окружности
Заданы координаты двух точек. Определите, лежат ли они на одной окружности с центром в начале...

Лежат ли точки с заданными координатами на одной окружности
Заданы координаты двух точек. Определите, лежат ли они на одной окружности с центром в начале...

Докажите, что точки лежат на одной окружности
Подскажите, пожалуйста, как решить задачу по геометрии: Две окружности пересекаются в точках А и...

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


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

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