Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Kykylllka
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 12
1

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

31.05.2014, 23:42. Просмотров 418. Ответов 6
Метки нет (Все метки)

Всем привет!

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

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

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

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-мя способами: рандом, с файла, в ручную и по этим данным строю треугольники. Данные о координатах каждой точки находятся в структуре и к ним надо обращаться.
И каждый раз новые проблемы которые я ни как не могу обойти. Я не буду их описывать, я прошу у вас помощи, подкиньте идей, или просто пруф на спрятанную в самых недрах интернета страницу с решением поставленной задачи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2014, 23:42
Ответы с готовыми решениями:

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

Заполнить все окно вывода прямоугольными треугольниками
В текстовом режиме заполнить все окно вывода прямоугольными треугольниками с...

Как сравнить элемент массива с другими элементами этого же по значению?
Здравствуйте, мне нужно сравнить определенный элемент массива с другими...

Составить программу, которая по заданному слову из набора строит следующее за ним по алфавиту слово из этого набора
&quot;Слово&quot; Указано слово (латинскими буквами). Из всех его букв составляются...

Возможное отсутствие тега между другими и из-за этого сжирается текст до следующего совпадения
Пишу конвертер в котором нужно преобразовывать элементы в ul ol li списки....

6
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
31.05.2014, 23:48 2
Цитата Сообщение от Kykylllka Посмотреть сообщение
все пишут про пересечение отрезков и останавливаются на этом.
А как же хотя бы это?
0
Kykylllka
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 12
31.05.2014, 23:51  [ТС] 3
Не вижу там ничего полезного для моей проблемы.

Добавлено через 1 минуту
Хотя я лучше все прочитаю, а потом сделаю вывод
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
31.05.2014, 23:53 4
Цитата Сообщение от Kykylllka Посмотреть сообщение
Не вижу там ничего полезного для моей проблемы.
Что такое треугольник, как не частный случай выпуклого многоугольника.
0
Kykylllka
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 12
01.06.2014, 00:08  [ТС] 5
Я прочитал 2 раза, понял что это какая-то жесть, и без объяснения я не смогу это понять.
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
01.06.2014, 00:15 6
Kykylllka, я предложил первое, что выдал гугл. Суть в том, что метод определения пересечений треугольников - это частный случай метода определения пересечения многоугольников. А такой инфы в инете полно.
0
Kykylllka
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 12
01.06.2014, 16:13  [ТС] 7
Tulosba, спасибо. Буду дальше лопатить интернет.

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

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

Добавлено через 1 час 37 минут
Хелп
0
01.06.2014, 16:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2014, 16:13

Как из этого набора условий сделать рекурсивную функцию
Есть две суперкатегории, в них куча подкатегорий различного уровня вложенности,...

Сколькими способами гирями этого набора можно составить вес в V грамм
Имеются 10 гирь весом 100, 200, 300, 500, 1000, 1200, 1400, 1500, 2000 и 3000...

Найти все прямоугольные треугольники
Есть программа на Visual Prolog, помогите пожалуйста перевести на Turbo Prolog....


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

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

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