Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
SuicideJazz
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 2
#1

Пересечение прямоугольников на плоскости

25.12.2011, 16:53. Просмотров 1502. Ответов 1
Метки нет (Все метки)

привет! ребят помогите, пожалуйста..
все по порядку:
задача:
Реализовать класс, позволяющий хранить данные о координатах прямоугольника на плоскости.
Создать конструкторы, а также методы, позволяющие вычислить периметр и площадь
прямоугольника. Создать в основной части программы два объекта этого класса и выяснить,
пересекаются ли два прямоугольника.

вот я создал 2 объекта, сделал методы по расчету периметра и площади..
но вопрос в том, как сделать, пересекаются ли 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
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 <vcl.h>
#include <conio.h>
#include <iostream.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
class Rectaangle
{
        private:
                float x1;
                float x2;
                float x3;
                float x4;
                float y1;
                float y2;
                float y3;
                float y4;
        public:
 
                void vvod()
                {
                        float x1,x2,x3,x4,y1,y2,y3,y4,s;
                        cout << "Enter coordinates tochki #1(x and y):"<<endl; //просим юзера ввести координаты 1 точки
                        cout << "Enter coordinate 'x' tochki #1: ";
                        cin >> x1;
                        cout << "Enter coordinate 'y' tochki #1: ";
                        cin >> y1;
                        cout << "Enter coordinates tochki #2(x and y), protivopolozhno lezhash'ei #1:"<<endl;
//юзер вводит координаты второй точки,если хоть одна координата совпадет с координатами первой, 
//то отправляем вводить коор-ты заново, т.е. добиваемся того, чтобы юзер ввел коор-ты противоположных точек, 
//чтобы коор-ты остальных 2 точек нашла прога 
                        do
                        {
                                cout << "Enter coordinate 'x' tochki #2: ";
                                cin >> x2;
                                cout << "Enter coordinate 'y' tochki #2: ";
                                cin >> y2;
                                cout <<endl;
                                if ((x2==x1)&&(y2==y1))
                                {
                                        cout << "Error, coincidence of coordinates"<<endl;
                                }
                                else if ((x2==x1)||(y2==y1))
                                {
                                        cout << "Error, enter other coordinates"<<endl;
                                }
                        }
                        while (((x1==x2)||(y2==y1))||((x2==x1)&&(y2==y1)));
                        x3=x2;
                        y3=y1;
                        x4=x1;
                        y4=y2;
                        cout <<"Coordinates of rectangle:"<<endl;
                        cout <<"("<< x1 <<";" << y1 <<")";
                        cout <<"("<< x2 <<";" << y2 <<")";
                        cout <<"("<< x3 <<";" << y3 <<")";
                        cout <<"("<< x4 <<";" << y4 <<")";
                        cout <<endl <<endl;
                        cout <<"Square: " << function(x1,x2,y1,y2,s) <<endl;;
                        cout <<"Perimetr: " << s <<endl;
                }
                float function (float t,float y,float u,float i,float& p)
                {
                        float a,b;
                        a=y-t;
                        b=i-u;
                        if (a<0)
                        {
                                a=-a;
                        }
                        if (b<0)
                        {
                                b=-b;
                        }
                        p=(a+b)*2;
                        return (a*b);
                }
 
 
 
};
#pragma argsused
int main(int argc, char* argv[])
{
        char q;
        do
        {
                Rectaangle r1;
                cout <<"Enter coordinates #1 rectangle:" <<endl;
                r1.vvod();
                Rectaangle r2;
                cout <<endl;
                cout <<"Enter coordinates #2 rectangle:" <<endl;
                r2.vvod();
                cout << "Press Y for continuation or U to exit: ";
                cin >> q;
        }
        while (q!='u');
        return 0;
}
И скажите, нужен ли здесь конструктор и для чего, если да...я не могу разобраться с этими конструкторами.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2011, 16:53
Ответы с готовыми решениями:

Пересечение прямоугольников
В прямоугольной системе координат (оси расположены слева направо и сверху вниз)...

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

Проверить пересечение прямоугольников
как проверить пересекаются ли прямоугольники? Для ясности скинул весь свой...

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

Пересечение клеток на плоскости отрезком
Салют всем тем, кому еще не салютовал :} Есть программа, реализующая подсчет...

1
SuicideJazz
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 2
28.12.2011, 15:07 #2
вопрос отпадает, уже не нужно!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2011, 15:07

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

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

Даны стороны трех прямоугольников Найти периметры и площади этих прямоугольников
1. S1=SSS(a1, b1); S2=SSS(a2, b2); S3=SSS(a3, b3);...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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