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

Сместить на плоскости три точки с определенной закономерностью - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Объяснить код http://www.cyberforum.ru/cpp-beginners/thread1542534.html
Может кто-нибудь смог бы закомментировать данные участок кода или объяснить что за что отвечает( можно еще и ссылки на сторонние ресуры скинуть)..? Пока дальше циклов и простых функций не продвинулся, а разобраться с кодом очень надо! Заранее спасибо. ... конкретно данный участок позволяет найти повторяющиеся слова(2 и более раза) в строке и образует из них новую последовательность. ...
C++ Найти простые числа и занести их в новый массив Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. Первая функция ищет простые числа и заносит их в новый массив, вторая – все числа кратные трем, третья – все четные числа. В программе создайте массив из 3-х указателей на эти функции. Добавьте меню, в котором пользователь может выбрать желаемую... http://www.cyberforum.ru/cpp-beginners/thread1542516.html
Ошибка при определении переменной в switch C++
case 2: // почасовые работники - фиксированная плата за 40ч, после 40ч полуторная ставка int workingNorm = 40; int hours; rate = 1.5; // ставка за сверхурочные часы cout << "Enter the salary for hour: "; cin >> salary; cout << "Enter the number of hours: ";
Странная инициализация, объясните код C++
Встретил такой код: int x = (3, 2 , 5 , 4 ); std::cout<<x;//4 Вопросы: -как это называться; -зачем; -что происходит в этом случае; Спасибо!
C++ Как сравнить элемент массива с другими элементами этого же по значению? http://www.cyberforum.ru/cpp-beginners/thread1542492.html
Здравствуйте, мне нужно сравнить определенный элемент массива с другими элементами по значению. К примеру дан массив чисел. Мне нужно сравнить его элемент по значению. То есть встречаются ли в нем другие элементы одинакового значения.
C++ Вывести порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается как вывести на экран порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается ? подробнее

Показать сообщение отдельно
nvek
2 / 2 / 0
Регистрация: 18.09.2014
Сообщений: 87
01.10.2015, 22:22     Сместить на плоскости три точки с определенной закономерностью
Точки задаются координатами (x1, y1),
(x2, y2) соответственно. При смене
координат одной точки, координаты
другой точки меняются по принципу:

fi = atan((y12-y1)/(x12-x1))
x22= L cos(fi) + x12
y22=L sin (fi) + y12
расстояние между точками не меняется,
смещение другой точки минимально.
Формулы для использования:где x12, y12 новые координаты точки1, x22,
y22 новые координаты точки2, L – длина
отрезка.
Аналогично при смене координат
точка2

вот само задание. Над поставить третью точку. у13 и х13 но!
у меня последне плече разворачивает куда не надо
там связано с тангенсом и арктангенсом, при любой координате, у меня тангенс будет идти на положительную сторону вверхправо
этого недолжно быть
запустите мою программу и посмотрите если не понимаете
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <math.h>
#include <iostream>
 
using namespace std;
 
class Otrezok
{
protected:
    double x1, x2;
    double y1, y2;
    double L;
    double fi;
public:
    Otrezok(int x1, int y1, int x2, int y2)
    {
        //проверка
        if ((x1 <= 1000) || (x1 >= 0))
            this->x1 = x1;
        else this->x1 = 0;
        if ((x2 <= 1000) || (x2 >= 0))
            this->x2 = x2;
        else this->x2 = 0;
        if ((y1 <= 500) || (y1 >= 0))
            this->y1 = y1;
        else this->y1 = 0;
        if ((y2 <= 500) || (y2 >= 0))
            this->y2 = y2;
        else this->y2 = 0;
        ////////////////////////////////////
        L = sqrt((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1)); //Dlina
    } 
    void oMethod(int x12, int y12)
    {
        //тело метода
 
        fi = atan2((y12 - y2) , (x12 - x2));
        x2 = L*cos(fi) + x12;
        y2 = L*sin(fi) + y12; 
        cout << fi;
    }
    int getX2() { return x2; }
//  int getX3() { return x3; }
    int getY2() { return y2; }
//  int getY3() { return y3; }
    
};
class Lomanaya : public Otrezok
{
private:
    double x3, y3;
    double L;
    double fi;
public:
    Lomanaya(int x1, int y1, int x2, int y2, int x3, int y3) : Otrezok(x1, y1, x2, y2) //нашли длину для
        //отрезка
    {
        //прверили другие точки
        if ((x3 <= 1000) || (x3 >= 0))
            this->x3 = x3;
        else this->x3 = 0;
        if ((y3 <= 1000) || (y3 >= 0))
            this->y3 = y3;
        else this->y3 = 0;
        //////////////////////////////////////
        //измерим отрезок для последней точки
        L = sqrt((x3 - x2)*(x3 - x2) + (y3 - y2)*(y3 - y2));
        
 
    }
    
    void lMethod(int x12, int y12)
    {
        
        oMethod(x12, y12);
        
        fi = atan2((y3 - y2) ,(x3 - x2));
        x3 = L*cos(fi) + x2;
        y3 = L*sin(fi) + y2;
 
    }
    int getX3() { return x3; }
    int getY3() { return y3; }
};
 
void main()
{
    
    Otrezok a(3, 2, 9, 4);//создали линию
    Lomanaya b(3, 2, 9, 4, 10, 3);
    int x12 = 4;
    int y12 = 3;
    //a.method(x12, y12);
    b.lMethod(x12, y12);
    //cout <<  << endl;
 
    cout << "[" << b.getX2() << ":" << b.getY2() << "]" << "  [" << b.getX3() << ":" << b.getY3() << "]" << endl;
    system("pause");
    //return 0;
    //выводим точки
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru