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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.90
Рулик
8 / 8 / 0
Регистрация: 14.11.2011
Сообщений: 54
#1

Выпуклый многоугольник - C++

10.07.2012, 21:36. Просмотров 3700. Ответов 4
Метки нет (Все метки)

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

Выпуклый многоугольник - C++
Вот программа: #include <iostream> #include <cmath> #define size 100000 using namespace std; class point {

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

Определить выпуклый ли многоугольник. - C++
Задан многоугольник координатами в порядке обхода. Определить выпуклый ли он ? как сделать иначе не проверяя угол ? Хочется...

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

Разбить выпуклый многоугольник на треугольники - C++
Здравствуйте. Кто нибудь может помочь написать программу с таким условием? Условие: Выпуклый n - угольник (n>3) задаётся координатами...

Выпуклый многоугольник (вычислить площадь, периметр, количество сторон) - C++
Задача на с++. Помогите, ребята. объект выпуклый многоугольник. тут в программе надо вычислить площадь, периметр, количество полей.

4
Nick Alte
Эксперт С++
1643 / 1015 / 120
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
10.07.2012, 22:23 #2
В выпуклом многоугольнике, если мы возьмём любое его ребро и проведём через него прямую, все остальные точки будут лежать по одну и ту же сторону этой прямой, то есть, в одном полупространстве. Прямая описывается уравнением A*x + B*y + C = 0, коэффициенты A, B и C элементарно находятся по координатам вершин ребра. Если подставить в это уравнение координаты точек, то знак получившегося числа будет зависеть от того, "выше" или "ниже" прямой находится точка. Следовательно, если у всех остальных точек при подстановке в уравнение одинаковый знак, они по одну сторону от прямой. Если это условие выполняется для каждого ребра, многоугольник выпуклый.
0
ramybozy
8 / 8 / 0
Регистрация: 01.07.2012
Сообщений: 138
10.07.2012, 23:24 #3
Все это выражается значительно проще:
1) При каждой вершине строим два вектора с началом в данной вершине и с концами в смежных.
2) Считаем векторные произведения для всех пар векторов.
3) У выпуклого многоугольника знаки всех этих векторных произведений должны совпадать.
0
Nick Alte
Эксперт С++
1643 / 1015 / 120
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
10.07.2012, 23:33 #4
Какой может быть знак у векторного произведения, это ж вектор? Скалярное произведение тут тем более не годится...
0
ramybozy
8 / 8 / 0
Регистрация: 01.07.2012
Сообщений: 138
10.07.2012, 23:44 #5
Пардон сглупил немного:
Пункт 3) звучит так:
3) У выпуклого многоугольника все векторные произведения направлены в одну и ту же сторону.
0
10.07.2012, 23:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2012, 23:44
Привет! Вот еще темы с ответами:

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

Рассчитать выпуклый многогранник методом триангуации - C++
Разработать программу для расчета выпуклого многогранника методом триангуации (разбиения на треугольники) по формуле Герона (определение...

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

Разбить выпуклый n-угольник на треугольники согласно условию - C++
10. Дан выпуклый n-угольник, n=>3, своим обходом по контуру. Разбить его на треугольники (n-3)-мя диагоналями, непересекающимися кроме как...


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

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

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