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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
#1

Координаты вершин многоугольников - C++

14.11.2010, 14:38. Просмотров 1645. Ответов 22
Метки нет (Все метки)

...люди добрые....не знаю как это сделать -
. Среди заданных координатами вершин многоугольников на плоскости найти многоугольник с наименьшим периметром.

Желательно использовать функции.Но у меня и без функций то не выходит....вообще какая-то очень сложная задача(((...Помогите пожалуйста((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2010, 14:38     Координаты вершин многоугольников
Посмотрите здесь:

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

Даны координаты 3 вершин параллелограмма, найти 4 - C++
Даны координаты 3 вершин параллелограмма, найти 4. Преподаватель сказала, что должно быть 3 случая. Типо 4 вершина может находится в разных...

Даны координаты вершин много угольника - C++
Даны координаты вершин много угольника (x1,y1,x2,y2,...,x10,y10).Напишите программу для вычисления его перемитра (вычисление расстояния...

Определить координаты вершин прямоугольного треугольника - C++
определить координаты вершин прямоугольника наименьшего периметра содержащего треугольник координаты вершин котрого (x1,y1), (x2,y2),...

Найти координаты вершин треугольника из bmp файла - C++
нам дан bmp файл на котором нарисован треугольник. размер файла 512*512. как найти координаты вершин треугольника?

Найти координаты всех вершин правильного многоугольника - C++
Здрасте! Есть задача: Дан правильный N-угольник с центром в точке (X, Y) и с координатами одной из вершин X1, Y1. Найти координаты...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
14.11.2010, 14:49     Координаты вершин многоугольников #2
Отрезок по координатам определяется как sqrt( (x1-x2)^2 + (y1-y2)^2), а дальше уже всё проще некуда.
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.11.2010, 14:59  [ТС]     Координаты вершин многоугольников #3
А про эту формулу я и сама знаю))
Я вот не пойму как эти точки задавать!!!...и еще ведь неизвестно кол-во углов.не сказано какой многоугольник.

Добавлено через 53 секунды
хмм...и еще неизвестно сколько всего этих многоугольников....((...
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
14.11.2010, 15:14     Координаты вершин многоугольников #4
В случае, когда не знаешь, что делать в подобных задачах - делай полный перебор. Т.е. перебираем ВСЕ возможные многоугольники, ищем их периметры и выбираем минимальный.
Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
14.11.2010, 15:14     Координаты вершин многоугольников #5
Т.е. у нас есть просто набор точек и всё?
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
14.11.2010, 15:16     Координаты вершин многоугольников #6
Зачем матрица - достаточно двумерного массива, первая строка - абсциссы, вторая - ординаты.
Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
14.11.2010, 15:18     Координаты вершин многоугольников #7
silent_1991, А двумерный массив не есть матрица? =)
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
14.11.2010, 15:20     Координаты вершин многоугольников #8
Да, но вы предлагали создавать для каждой фигуры отдельный массив, причём ещё и размерностью, равной количеству вершин, как я понял... А при условии, что мы не знаем ни количество фигур, ни количество вершин в каждой - это не есть тру. Нам, как я понял, дан просто набор точек на плоскости.
Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
14.11.2010, 15:22     Координаты вершин многоугольников #9
Цитата Сообщение от silent_1991 Посмотреть сообщение
Да, но вы предлагали создавать для каждой фигуры отдельный массив, причём ещё и размерностью, равной количеству вершин, как я понял... А при условии, что мы не знаем ни количество фигур, ни количество вершин в каждой - это не есть тру. Нам, как я понял, дан просто набор точек на плоскости.
Я просто из фразы "Я вот не пойму как эти точки задавать!!" понял, что мы сами задаём разные многоугольники.
barlog, Их задавать или они уже заданы(точки)?
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.11.2010, 16:35  [ТС]     Координаты вершин многоугольников #10
если честно я не знаю...но мне кажется надо самим задавать точки.Вот смотрите что у меня вышло...ну это правда только для одного многоугольника.но все равно ....оно не работает!!!Пишет ошибка из корня((((....


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
#include <vcl.h>
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main()
{      float X[10];
       float Y[10];
 
   int n, i  ;
int  P, d , d1;
 cout<<"Vvedite kol-vo yglov mnogoygolnika\n";
 cin>>n;
  cout<<"Vvedite koordinaty tochek X :\n";
 for(i=0;i<n;i++)
 { cout<<" X["<<i<<"]= ";
   cin>>X[i]; }
  cout<<"Vvedite koordinaty tochek Y :\n";
  for(i=0;i<n;i++)
  { cout<<" Y["<<i<<"]= ";
   cin>>Y[i]; }
 
  P=0;
  for(i=0; i<n-1; i++ )
  { d=sqrt((X[i+1]-X[i])*(X[i+1]-X[i])-(Y[i+1]-Y[i])*(Y[i+1]-Y[i])) ;
    P=P+d ;
  }
   d1=sqrt(  (X[n-1]-X[0])*(X[n-1]-X[0])-(Y[n-2]-Y[0])*(Y[n-2]-Y[0])) ;
   P=P+d1 ;
 
  cout<<"Perimetr =  "<<endl;
  cin>>P;
 
 
   getch();
        return 0;
}
Добавлено через 1 минуту
неважно наверное вообще как эти точки заданы...в условие не сказано....мне бы вообще хоть как-то решить(((

Добавлено через 6 минут
какой-то SQRT: DOMAIN ERROR

Добавлено через 20 минут
Ой да....я там в формуле минус поставила а надо плюс.....но даже после этого не работает(((

Добавлено через 35 секунд
Цитата Сообщение от barlog Посмотреть сообщение
d=sqrt((X[i+1]-X[i])*(X[i+1]-X[i])-(Y[i+1]-Y[i])*(Y[i+1]-Y[i]))
d=sqrt((X[i+1]-X[i])*(X[i+1]-X[i])+(Y[i+1]-Y[i])*(Y[i+1]-Y[i]))

Добавлено через 2 минуты
о чего-то уже не пишет ошибку...но периметр не выводит...почему....не знаю...
C++
1
2
3
4
5
6
7
8
9
10
  P=0;
  for(i=0; i<n-1; i++ )
  { d=sqrt((X[i+1]-X[i])*(X[i+1]-X[i])+(Y[i+1]-Y[i])*(Y[i+1]-Y[i])) ;
    P=P+d ;
  }
   d1=sqrt(  (X[n-1]-X[0])*(X[n-1]-X[0])+(Y[n-2]-Y[0])*(Y[n-2]-Y[0])) ;
   P=P+d1 ;
 
  cout<<"Perimetr =  "<<endl;
  cin>>P;
должен же вроде считать периметр
Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
14.11.2010, 16:35     Координаты вершин многоугольников #11
C++
1
2
cout<<"Perimetr =  "<<endl;
       cout<<P;
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.11.2010, 16:41  [ТС]     Координаты вершин многоугольников #12
ООО!!!Посчитал периметр...тока неправильно...почему....

Добавлено через 1 минуту
помогите пожалуйта!!!
Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
14.11.2010, 16:42     Координаты вершин многоугольников #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for(i=0; i<n; i++ )
  {
        if (i==(n-1))
        {
                d=sqrt(  (X[i]-X[0])*(X[i]-X[0])+(Y[i]-Y[0])*(Y[i]-Y[0])) ;
                P=P+d;
        }
        else
        {
                d=sqrt((X[i+1]-X[i])*(X[i+1]-X[i])+(Y[i+1]-Y[i])*(Y[i+1]-Y[i])) ;
                P=P+d ;
        }
  }
У меня по тем формулам тоже вроде нормально считалось.
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.11.2010, 16:45  [ТС]     Координаты вершин многоугольников #14
X0=2
X1=2
X3=5

Y0=2
Y1=6
Y2=2

P=14


А должно Р=12. Прямоугольный трекголник...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2010, 16:47     Координаты вершин многоугольников
Еще ссылки по теме:

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

Даны координаты четырех вершин. Определить вид четырехугольника - C++
Даны координаты четырех вершин. Определить, является ли этот четырехугольник: 1 программа - трапецией 2 программа параллелограммом 3...

Известны координаты вершин треугольника, определить его площадь - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;cmath&gt; using namespace std; int main() { int x,y,z,z1,z2,y1,y2,x1,x2; float...

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

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


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

Или воспользуйтесь поиском по форуму:
Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
14.11.2010, 16:47     Координаты вершин многоугольников #15
C++
1
float  P, d , d1;
Сейчас разберёмсо.
Yandex
Объявления
14.11.2010, 16:47     Координаты вершин многоугольников
Ответ Создать тему
Опции темы

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