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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 50, средняя оценка - 4.72
Sun-rise
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 20
30.09.2010, 14:10     Найти площадь пересечения прямоугольников #1
даны 2 прямоугольника. Каждый из них задан 2 точками. верхней левой и правой нижней. если они пресекаются найди их площадь... Задавать надо координаты и чтобы программа посчитала площадь.

Добавлено через 46 минут
Если можно , то лучше всего описать все возможные случаи в программе через if
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2010, 14:10     Найти площадь пересечения прямоугольников
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dexter
 Аватар для Dexter
284 / 144 / 16
Регистрация: 13.10.2009
Сообщений: 164
30.09.2010, 15:04     Найти площадь пересечения прямоугольников #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
#include <iostream>
#include <vector>
#include <algorithm>
 
void main()
{
    std::vector<float> X(4);
    std::vector<float> Y(4);
    std::cout<<"Enter coordinats first rectangle "; 
    std::cin>>X[0]>>Y[0]>>X[1]>>Y[1];
    std::cout<<"Enter coordinats second rectangle "; 
    std::cin>>X[2]>>Y[2]>>X[3]>>Y[3];
    
 
    if(X[0]>=X[1]||Y[1]>=Y[0]||X[2]>=X[3]||Y[3]>=Y[2])
        std::cout<<"Bad rectangle";
    else
    if(X[0]>=X[3]||X[2]>=X[1]||Y[3]>=Y[0]||Y[1]>=Y[2])//значит не пересекаются
    {
        std::cout<<"Disjoint";
    }
    else
    {//Если пересекаются - тогда найдем площадь
        sort(X.begin(),X.end());
        sort(Y.begin(),Y.end());
        float S=(X[2]-X[1])*(Y[2]-Y[1]);//Координаты внутреннего прямоугольника - будут 2 и 3 по величине
        std::cout<<"S="<<S;
    }    
}
Вот так получается, если стороны прямоугольников параллельны осям.
Sun-rise
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 20
30.09.2010, 16:38  [ТС]     Найти площадь пересечения прямоугольников #3
как всегда быстро и профессионально , спасибо =)
Yandex
Объявления
30.09.2010, 16:38     Найти площадь пересечения прямоугольников
Ответ Создать тему
Опции темы

Текущее время: 08:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru