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

Выявить все треугольники, не пересекающиеся с другими треугольниками этого набора - C++

Восстановить пароль Регистрация
 
Kykylllka
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 12
31.05.2014, 23:42     Выявить все треугольники, не пересекающиеся с другими треугольниками этого набора #1
Всем привет!

Пишу курсовик, столкнулся проблемой на самом важном пункте моей поставленной задачи: На плоскости имеется набор треугольников. Выявить все треугольники, не пересекающиеся с другими треугольниками этого набора.

Перелопатил весь интернет в поисках решения, ничего не нашёл, вообще ничего, все пишут про пересечение отрезков и останавливаются на этом.

Я понял, что надо подходить к решению через определение пересечения отрезков треугольника, написал алгоритм:

C++
1
2
3
4
5
float v1 = (stprov[j+1].X-stprov[i+1].X)*(stprov[i].Y-stprov[i+1].Y)-(stprov[j+1].Y-stprov[i+1].Y)*(stprov[i].X-stprov[i+1].X);
float v2 = (stprov[j+1].X-stprov[i+1].X)*(stprov[j].Y-stprov[i+1].Y)-(stprov[j+1].Y-stprov[i+1].Y)*(stprov[j].X-stprov[i+1].X);
float v3 = (stprov[j].X-stprov[i].X)*(stprov[i+1].Y-stprov[i].Y)-(stprov[j].Y-stprov[i].Y)*(stprov[i+1].X-stprov[i].X);
float v4 = (stprov[j].X-stprov[i].X)*(stprov[j+1].Y-stprov[i].Y)-(stprov[j].Y-stprov[i].Y)*(stprov[j+1].X-stprov[i].X);
if (((v1*v2)<0) && ((v3*v4)<0)) ...
Он вроде рабочий, но основная проблема состоит в том, что я не могу его реализовать для треугольника, а тем более для множества треугольников... Я перепробовал множество вариантов решения этой проблемы, но всё не то, всё не так.

У меня дело обстоит так, что я ввожу данные 3-мя способами: рандом, с файла, в ручную и по этим данным строю треугольники. Данные о координатах каждой точки находятся в структуре и к ним надо обращаться.
И каждый раз новые проблемы которые я ни как не могу обойти. Я не буду их описывать, я прошу у вас помощи, подкиньте идей, или просто пруф на спрятанную в самых недрах интернета страницу с решением поставленной задачи.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2014, 23:42     Выявить все треугольники, не пересекающиеся с другими треугольниками этого набора
Посмотрите здесь:

C++ Используя рекурсию, найти все четные числа из заданного набора целых чисел
Цикл: Вывести на экран все различные элементы набора данных по возрастанию C++
C++ В прямоугольной матрице выявить все строки, у которых максимальный элемент превосходит сумму остальных элементов строки
Найти не пересекающиеся треугольники C++
Определить все треугольники Герона, длины сторон которых больше заданного натурального N C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
31.05.2014, 23:48     Выявить все треугольники, не пересекающиеся с другими треугольниками этого набора #2
Цитата Сообщение от Kykylllka Посмотреть сообщение
все пишут про пересечение отрезков и останавливаются на этом.
А как же хотя бы это?
Kykylllka
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 12
31.05.2014, 23:51  [ТС]     Выявить все треугольники, не пересекающиеся с другими треугольниками этого набора #3
Не вижу там ничего полезного для моей проблемы.

Добавлено через 1 минуту
Хотя я лучше все прочитаю, а потом сделаю вывод
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
31.05.2014, 23:53     Выявить все треугольники, не пересекающиеся с другими треугольниками этого набора #4
Цитата Сообщение от Kykylllka Посмотреть сообщение
Не вижу там ничего полезного для моей проблемы.
Что такое треугольник, как не частный случай выпуклого многоугольника.
Kykylllka
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 12
01.06.2014, 00:08  [ТС]     Выявить все треугольники, не пересекающиеся с другими треугольниками этого набора #5
Я прочитал 2 раза, понял что это какая-то жесть, и без объяснения я не смогу это понять.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
01.06.2014, 00:15     Выявить все треугольники, не пересекающиеся с другими треугольниками этого набора #6
Kykylllka, я предложил первое, что выдал гугл. Суть в том, что метод определения пересечений треугольников - это частный случай метода определения пересечения многоугольников. А такой инфы в инете полно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2014, 16:13     Выявить все треугольники, не пересекающиеся с другими треугольниками этого набора
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Kykylllka
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 12
01.06.2014, 16:13  [ТС]     Выявить все треугольники, не пересекающиеся с другими треугольниками этого набора #7
Tulosba, спасибо. Буду дальше лопатить интернет.

Если кто-нибудь владеет какой-либо информацией, не поленитесь и отпишитесь, буду при много благодарен.

Добавлено через 14 часов 14 минут
Так и ничего не нашёл (

Добавлено через 1 час 37 минут
Хелп
Yandex
Объявления
01.06.2014, 16:13     Выявить все треугольники, не пересекающиеся с другими треугольниками этого набора
Ответ Создать тему
Опции темы

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