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

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

Войти
Регистрация
Восстановить пароль
 
Kykylllka
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 12
#1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Найти все разносторонние треугольники - Prolog
не могу выполнить, помогите Уточнение задания: определены структуры «точка» (координата_Х, координата_Y), «отрезок» (точка, точка),...

Найти все прямоугольные треугольники - Prolog
Есть программа на Visual Prolog, помогите пожалуйста перевести на Turbo Prolog. Код программы: implement main open core, console ...

MySql Переопределить первичный ключ и выявить все функциональные зависимости. - MySQL
Всем привет! Очень нужна ваша помощь, прям крик души! Препод высылает отрицательные рецензии, уже который раз. Исправляю исправляю, всё...


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

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

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