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

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

Войти
Регистрация
Восстановить пароль
 
muryj
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 6
#1

Вывести расстояние от заданной точки до точки пересечения диагоналей прямоугольников - C++

03.06.2013, 18:06. Просмотров 587. Ответов 4
Метки нет (Все метки)

Прямоугольники заданы координатами их вершин.
1)Вывести расстояние от заданной точки до точки пересечения диагоналей.
2) Вывести координаты вершин прямоугольника, в котором расстояние от заданной точки, до точки пересечения диагоналей есть найменьшим.
Вот такую задачу задали в колледже, только начали изучать с++, как делать не представляю, а сдать нужно до вторника, буду благодарен за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 18:06     Вывести расстояние от заданной точки до точки пересечения диагоналей прямоугольников
Посмотрите здесь:

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

Определить кратчайшее расстояние от заданной точки до границы заданной фигуры - C++
Определить кратчайшее расстояние от заданной точки до границы заданной фигуры, если точка находится внутри фигуры, иначе вывести...

Определить кратчайшее расстояние от заданной точки до границы заданной фигуры, считая, что точка находится вне - C++
Определить кратчайшее расстояние от заданной точки до границы заданной фигуры, считая, что точка находится вне

Определить расстояние до горизонта от точки с заданной высотой - C++
Помогите решить задачу.Считая, что Земля – это идеальная сфера с радиусом R = 6350 км, определить расстояние до горизонта от точки с...

Найти минимальное расстояние от точки до точки - C++
В последнем цикле, который должен находить минимальное расстояние от точки до точки и его индекс, какая-то ошибка. Немогу её увидеть....

Задача (вывести длину кратчайшего пути от точки до точки.) - C++
Пишу задачу, нужно вывести длину кратчайшего пути от точки до точки. проблема в том, что после генерации массива и задания ему...

точки пересечения - C++
даны 2 ф-ции и нада найти их точки пересичения,даже точки даны тока их надо найти спомощью проги. так вот писал я так float x=0; ...

найти точки пересечения y = ax^3 + bx^2 + cx + d и y = kx + m - C++
Задача: Определить, пересекаются ли линии y = ax^3 + bx^2 + cx + d и y = kx + m. Если пересекаются, найти точки пересечения ...

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tony_pershin
16 / 16 / 1
Регистрация: 05.03.2013
Сообщений: 36
03.06.2013, 18:44     Вывести расстояние от заданной точки до точки пересечения диагоналей прямоугольников #2
Второй пункт не очень понятен, можете разъяснить? Правильно ли я понимаю, что это случай, когда точка совпадает с центром прямоугольника? В таком случае прямоугольников бесконечное множество.
Решение для первого пункта:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <cmath>
#include <iostream>
 
using namespace std;
int main()
{
    double x1, x2, y1, y2, dx, dy, gx, gy;
    // Rectangle coordinates
    cin << x1;
    cin << x2;
    cin << y1;
    cin << y2;
    // Given point coordinates
    cin << gx;
    cin << gy;
    // Rectangle center coordinates
    dx = (x1+x2)/2;
    dy = (y1+y2)/2;
    
    cout << "Distance is " << sqrt( (dx-gx)*(dx-gx) + (dy-gy)*(dy-gy) ); 
    
    return 0;
}
muryj
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 6
03.06.2013, 19:06  [ТС]     Вывести расстояние от заданной точки до точки пересечения диагоналей прямоугольников #3
Я так понимаю, что нужно ввести несколько прямоугольников и потом вывести координаты вершин того из них, у которого расстояние до точки пересечения диагоналей найменьшее.
tony_pershin
16 / 16 / 1
Регистрация: 05.03.2013
Сообщений: 36
03.06.2013, 23:02     Вывести расстояние от заданной точки до точки пересечения диагоналей прямоугольников #4
Как-то я немного криво написал, сейчас нормально сделал.
Первая задача:
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
#include <cmath>
#include <iostream>
 
using namespace std;
struct Point
{
    Point( const double& px = 0., const double& py = 0. ) : x(px), y(py) {}
 
    double x, y;
};
 
struct Rectangle
{
    Point ltPoint; // left top point
    Point rbPoint; // right bottom point
 
    Point GetCenterPoint()
    {
        return Point( (ltPoint.x + rbPoint.x)/2, (ltPoint.y + rbPoint.y)/2 );
    }
};
 
double GetDistance( double x1, double x2, double y1, double y2 )
{
    return ::sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );
}
 
int main()
{
    Rectangle rect;
    double gx;
    double gy;
 
    cout << "Enter X-coord of left top point: ";
    cin >> rect.ltPoint.x;
    cout << "Enter Y-coord of left top point: ";
    cin >> rect.ltPoint.y;
    cout << "Enter X-coord of right bottom point: ";
    cin >> rect.rbPoint.x;
    cout << "Enter Y-coord of right bottom point: ";
    cin >> rect.rbPoint.y;
    cout << "Enter X-coord of researched point: ";
    cin >> gx;
    cout << "Enter Y-coord of researched point: ";
    cin >> gy;
 
    Point center = rect.GetCenterPoint();
    cout << "Distance is " << ::GetDistance( center.x, gx, center.y, gy );
 
    return 0;
}
Вторая задача:
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <cmath>
#include <iostream>
 
using namespace std;
 
struct Point
{
    Point( const double& px = 0., const double& py = 0. ) : x(px), y(py) {}
 
    double x, y;
};
 
struct Rectangle
{
    Point ltPoint; // left top point
    Point rbPoint; // right bottom point
 
    Point GetCenterPoint()
    {
        return Point( (ltPoint.x + rbPoint.x)/2, (ltPoint.y + rbPoint.y)/2 );
    }
};
 
double GetDistance( double x1, double x2, double y1, double y2 )
{
    return ::sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );
}
 
int main()
{
    unsigned int rectCount;
    double gx;
    double gy;
 
    cout << "Enter X-coord of researched point: ";
    cin >> gx;
    cout << "Enter Y-coord of researched point: ";
    cin >> gy;
    cout << "Enter count of rectangles: ";
    cin >> rectCount;
 
    Rectangle rect;
    Point center;
    Rectangle nearestRect;
    Point nearestCenter;
    for( unsigned int i = 0; i < rectCount; ++i )
    {
        cout << "Enter X-coord of left top " << i+1 << "th point: ";
        cin >> rect.ltPoint.x;
        cout << "Enter Y-coord of left top " << i+1 << "th point: ";
        cin >> rect.ltPoint.y;
        cout << "Enter X-coord of right bottom " << i+1 << "th point: ";
        cin >> rect.rbPoint.x;
        cout << "Enter Y-coord of right bottom " << i+1 << "th point: ";
        cin >> rect.rbPoint.y;
 
        center = rect.GetCenterPoint();
        if( (::GetDistance( center.x, gx, center.y, gy ) < ::GetDistance( nearestCenter.x, gx, nearestCenter.y, gy )) || (nearestCenter.x == 0. && nearestCenter.y == 0.) )
        {
            nearestRect = rect;
            nearestCenter = nearestRect.GetCenterPoint();
        }
    }
 
    cout << "Coodinates of found rectangle: X-coord of left top = " << nearestRect.ltPoint.x
                                        << "; Y-coord of left top = " << nearestRect.ltPoint.y
                                        << "; X-coord of right bottom = " << nearestRect.rbPoint.x
                                        << "; Y-coord of right bottom = " << nearestRect.rbPoint.y << endl;
    return 0;
}
muryj
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 6
05.06.2013, 00:52  [ТС]     Вывести расстояние от заданной точки до точки пересечения диагоналей прямоугольников #5
Спасибо!)
Yandex
Объявления
05.06.2013, 00:52     Вывести расстояние от заданной точки до точки пересечения диагоналей прямоугольников
Ответ Создать тему
Опции темы

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