![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 22.10.2010
Сообщений: 145
|
![]()
Прошу помочь с кодом следующей задачи:
Есть три треугольника, известны координаты вершин(x;y). Нужно создать статический метод для проверки, располагается ли один треугольник внутри другого (входные параметры – объекты класса, результат true или false).
До последней точки с запятой в коде...
![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 20.10.2010
Сообщений: 143
|
![]()
Re: Определение нахождения точки внутри треугольника До 25 марта 00:46 нов
В ответ на: Определение нахождения точки внутри треугольника от nebel , 24 марта 2006 г.: > Задача состоит в том, чтобы найти самый простой способ решения следующей задачи. Дано: координаты точки, координаты вершин треугольника. Выяснить: находится ли точка в треугольнике или вне треугольника (найти самую короткую формулу или алгоритм для решения задачи)? P.S.: практическое решение не приемлемо. Пусть нам известен х, тогда проверяем в каких пределах может лежать игрек у точки. Xa ≤ x ≤ Xc; Запрет для у x*(Ya-Yc)/(Xc-Xa)≤ y ≤ x*(Ya-Yb)/(Xa-Xb) и Xс ≤ x ≤ Xb; Запрет для у x*(Yс-Yb)/(Xс-Xb)≤ y ≤ x*(Ya-Yb)/(Xa-Xb) Разницу брать по модулю, вершинам треугольника давать буквы abc, так чтобы вершина с оказывалось при проекции на ось х между a и b. Вот найденный в гугле алгоритм нахождения точки в треугольнике, чтобы найти содержится ли треугольник в треугольнике - нужно проверить, расположены ли все 3 вершины одного треугольника, внутри другого.
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 22.10.2010
Сообщений: 145
|
![]()
Xeonc
ммм, не совсем понял про запрет. Да и вообще. На сколько я понял х - координата по х точки, которая лежит или не лежит в треугольнике А далее идёт проверка на у? В таком случае как я понял здесь предполагается, что х принадлежит? или я не прав. Возможно это нагло с моей стороны, но не могли бы вы немного разжевать? Я вообще подумывал использовать формулу по которой ищется принадлежит ли точка плоскости. В моём случае 3 точки. Только не знаю как это делать без координаты z, или же делать её =0.
До последней точки с запятой в коде...
![]() Последний раз редактировалось Necare; 22.10.2010 в 15:45. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 20.10.2010
Сообщений: 143
|
![]()
Эта формула - и есть расчет, принадлежит ли точка плоскости
Запрет - это ограничения для координаты y, для того, чтобы она удовлетворяла условию(расположению внутри плоскости)
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 22.10.2010
Сообщений: 145
|
![]()
это вроде:
if (x>=Xa&&x<=Xc && y>=x*(Ya-Yc)/(Xc-Xa)&&y<=x*(Ya-Yb)/(Xa-Xb) то принадлежит if(x<=Xb&&x>=Xc&& y>=x*(Yс-Yb)/(Xс-Xb)&&y<=x*(Ya-Yb)/(Xa-Xb) то тоже принадлежит? Просто у меня ну очень плохо с геометрией. Никогда её не любил.
До последней точки с запятой в коде...
![]() |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 20.10.2010
Сообщений: 143
|
![]()
У меня тоже) Поэтому и написал, что взял алгоритм с гугла.
Напишите простейшее приложение, и проверьте его
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 22.10.2010
Сообщений: 145
|
![]()
Ммм, так я вас верно понял?
if (x>=Xa&&x<=Xc && y>=x*(Ya-Yc)/(Xc-Xa)&&y<=x*(Ya-Yb)/(Xa-Xb) то принадлежит if(x<=Xb&&x>=Xc&& y>=x*(Yс-Yb)/(Xс-Xb)&&y<=x*(Ya-Yb)/(Xa-Xb) то тоже принадлежит?
До последней точки с запятой в коде...
![]() |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 20.10.2010
Сообщений: 143
|
![]()
Насколько я понял - оба этих условия должны выполниться. Поэтому и посоветовал перепроверить в рабочем приложении
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 22.10.2010
Сообщений: 145
|
![]()
x>=Xa&&x<=Xc
x<=Xb&&x>=Xc&& x не может быть одновременно больше и меньше Xc в любом случае какая-то ересь. Думал, думал и надумал: Код:
Кто знает алгоритм по проще - искренне прошу. вру: Код:
До последней точки с запятой в коде...
![]() Последний раз редактировалось Stilet; 30.10.2010 в 15:48. |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 22.10.2010
Сообщений: 145
|
![]()
ересь. Алгоритм не верный. И ваще эта тема выглядит как микроблог.
До последней точки с запятой в коде...
![]() Последний раз редактировалось Necare; 29.10.2010 в 21:58. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C++(треугольник) | Runner | Помощь студентам | 2 | 13.05.2010 10:32 |
О треугольнике.Турбо Паскаль. | SIvk | Помощь студентам | 6 | 12.03.2010 19:22 |
Координаты высоты в треугольнике | UnChanter | Помощь студентам | 1 | 19.10.2009 07:48 |
Треугольник | serega11 | Помощь студентам | 2 | 22.05.2008 09:01 |