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

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

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

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

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

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

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

Даны координаты вершин треугольника и координаты некоторой точки внутри него - C++
Даны координаты вершин треугольника и координаты некоторой точки внутри него. Найти расстояние от данной точки до ближайшей стороны...

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

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

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

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

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

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

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

Добавлено через 1 минуту
помогите пожалуйта!!!
0
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 ;
        }
  }
У меня по тем формулам тоже вроде нормально считалось.
0
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. Прямоугольный трекголник...
0
Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
14.11.2010, 16:47 #15
C++
1
float  P, d , d1;
Сейчас разберёмсо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2010, 16:47
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
14.11.2010, 16:47
Ответ Создать тему
Опции темы

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