Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 49, средняя оценка - 4.94
Agentkiller
#1

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

17.11.2008, 20:32. Просмотров 6802. Ответов 6
Метки нет (Все метки)

На плоскости нарисованы два прямоугольника П1 и П2, стороны которых параллельны осям координат. Найти площадь S общей части прямоугольников П1 и П2. В первой строке входного файла содержаться 4 действительных числа - координаты левого нижнего и правого верхнего углов прямоугольника П1. а во второй - соответственно для П2. В выходной файл пишется число S с точностью два знака после запятой.

Люди помогите написать эту программу че то не могу разобраться!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2008, 20:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти площадь общей части прямоугольников (C++):

Найти площадь пересечения прямоугольников - C++
даны 2 прямоугольника. Каждый из них задан 2 точками. верхней левой и правой нижней. если они пресекаются найди их площадь... Задавать надо...

Найти периметр и площадь пяти прямоугольников по известным сторонам - C++
Вот условие: Найти периметр и площадь пяти прямоугольников по известным сторонам. #include <stdio.h> int pr(float a,float b,...

Найти площадь фигуры, получающейся в результате объединения прямоугольников - C++
Помогите пожалуйста решить мне задачу... На координатной плоскости задано N прямоугольников со сторонами, параллельными координатным...

Нахождение общей площади, образованной объединением прямоугольников - C++
Я встал в ступор. И заранее извиняюсь, что не послал тему в алгоритмы, потому что я ее не нашел. Я правда не понимаю как решить данную...

Найти площадь пересечения, то есть общую часть двух прямоугольников (не могу понять алгоритм решения) - C++
Помогите пожалуйста, не могу понять алгоритм решения задачи: Напишите программу, которая находит площадь пересечения, то есть общей...

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

6
Spo1ler
292 / 52 / 3
Регистрация: 22.05.2008
Сообщений: 788
17.11.2008, 21:57 #2
Вырази просто математически, если у тебя есть координаты и измерения прямоугольников.
0
Agentkiller
18.11.2008, 00:36 #3
Я вообще не шарю в этом! сделайте за деньги!
Бася
0 / 0 / 0
Регистрация: 26.09.2008
Сообщений: 19
18.11.2008, 18:28 #4
Просто ищутся пересечения каждого отрезка П1 с каждым П2, а дальше дело техники
0
ulcigor
1 / 1 / 0
Регистрация: 19.11.2008
Сообщений: 13
19.11.2008, 19:41 #5
Ну что ж, давайте помробуем решить уравнение.
Формула вычисления площади прямоугольника S = a*b*sin(C)/2
где а и b стороны прилежащие углу C

Следовательно

Пишем скрипт

#include <stdio.h>
#include <math.h>

Код
int main()
{

  /*Здесь текст программы, подключение к файлу, чтение из него и
   *так далее.
   * a сторона прилежашего углу С
   * b сторона прилежащая углу С
   */
  float S = a*b*sin(C)/2;
  fprintf(fp, "%2.2f", S);
  return 0;
}
Дальше я думаю разберётесь
0
Жестянка
сцуко киборг
103 / 30 / 2
Регистрация: 11.09.2008
Сообщений: 193
19.11.2008, 23:42 #6
Формула вычисления площади прямоугольника S = a*b*sin(C)/2
если мне не изменяет память, это площадь треугольника

пересечение прямоугольников с параллельными сторонами - всегда прямоугльник (ес хто не верит попробуйте начертить по-другому)
площадь прямоугольника - S=a*b

Код
int Xu1, Yu1; //координаты верхней точки прямоугольника 1
int Xd1, Yd1; //координаты нижней точки прямоугольника 1
int Xu2, Yu2; //координаты верхней точки прямоугольника 2
int Xd2, Yd2; //координаты нижней точки прямоугольника 2
char S;
int deltaX, deltaY; //ширина и высота пересечения

if(Xu1>Xu2){deltaX=Xu2-Xd1;}else{deltaX=Xu1-Xd2;}
if(Yu1>Yu2){deltaY=Yu2-Yd1;}else{deltaY=Yu1-Yd2;}

if(deltaX<0||deltaY<0) {fprintf("пересечение отсутствует");}
else{S=deltaX*deltaY;fprintf(fp, "%2.2f", S);}
0
Бася
0 / 0 / 0
Регистрация: 26.09.2008
Сообщений: 19
20.11.2008, 00:34 #7
а если 4 раза пересекаются? а если 2 сопряженными сторонами?))

Добавлено через 8 минут 56 секунд
В таких случаях, по моему, верней методами аналгема решать, там ошибиться сложнее. нумеруешь катеты и вершины, ищешь пересечения всех отрезков П1 и П2, смотришь какие катеты участвуют в пересечениях и дальше логически выбираешь какие вершины/точки пересечения участвуют в построении прямоугольника искомого
0
20.11.2008, 00:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2008, 00:34
Привет! Вот еще темы с ответами:

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

Площадь наибольшего из прямоугольников матрицы - C++
Дана целочисленная матрица A;i=1,n;j=1,m. Прямоугольником в этой матрице будем называть множество всех элементов A, для которых выполнено...

Площадь пересечения двух прямоугольников - C++
Даны 4 координаты: 2 из них - координаты противоположных вершин первого прямоугольника (не известно каких) и оставшиеся две -...

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


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

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

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