![]() |
|
![]() ![]() ![]() |
|
BOB4uK |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 28.2.2004 Репутация: нет Всего: нет |
Есть треугольник координаты вершин которого известны! И есть точка с координатами Х и У!
Как определить попала ли точка в треугольник? |
|||
|
||||
Jorjio |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 20.5.2008 Где: г. Москва Репутация: нет Всего: нет |
Геометрия
Плоскость определена 3-мя прямыми. Идешь далле к принадлежности точки плоскости. Думаю изобретать велосипед не стоит, открой справочник по математике. |
|||
|
||||
BOB4uK |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 28.2.2004 Репутация: нет Всего: нет |
Пожалуйста пишите по существу, а не размазано, например пользуйся гуглем...
|
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
Возможны два варианта взаимного расположения точки и плоскости, ограниченной кривой: либо точка принадлежит плоскости, либо нет. Три точки задают плоскость тогда, и только тогда, когда они попарно различны, и не лежат на одной прямой
точка= (x,y,z) обозначим плоскость как : $(xp_i, yp_i, zp_i), i=1..3$ уравнение плоскости : $ ax+by+cz = d $ где \begin{eqnarray*} a &=& (yp_2 -yp_1 )(zp_3 -zp_1 ) - (yp_3 -yp_1 )(zp_2 -zp_1 ); \\ b &=& -(xp_2 -xp_1 )(zp_3 -zp_1 ) + (xp_3 -xp_1 )(zp_2 -zp_1 ); \\ c &=& (xp_2 -xp_1 )(yp_3 -yp_1 ) - (xp_3 -xp_1 )(yp_2 -yp_1 ); \\ d &=& xp_1 a+yp_1 b+zp_1 c \end{eqnarray*} остается только проверить удовлетворяет ли (x,y,z) приведенному уравнению. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
BOB4uK |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 28.2.2004 Репутация: нет Всего: нет |
Если чесно нифига не понятно! а треугольник плоский, координата Z не нужна!
|
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
BOB4uK, а мне непонятно при чём тут Builder. Если непонятен алгоритм решения задачи, задавай вопрос в форуме по алгоритмам.
Ну так подставь z=0
Там не уравнение должно быть, а система неравенств -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 1 Всего: 134 |
Доступное описание алгоритма есть в Кормене et al. Кстати неалгоритмиеческое решение на WinAPI может подразумевать использование ф-ций CreatePolygonRgn + PtInRegion. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
BOB4uK |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 28.2.2004 Репутация: нет Всего: нет |
Это где? |
|||
|
||||
Walker |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 363 Регистрация: 23.10.2006 Репутация: 1 Всего: 16 |
А по существу - в "Центр помощи" с такими вопросами и наездами. ![]() В Google, кстати, ответ на этот вопрос обнаруживается в течение пяти секунд. Хинт - точка находится в треугольнике, если площадь исходного треугольника равна сумме площадей треугольников, образованных каждой из сторон треугольника и "проблемной" точкой. Всё! ABC - треугольник, D - точка SABC = SABD + SACD + SBCD. Задача решается комбинацией трёх функций. 1. Сравнение площадей. 2. Нахождение площади по трём сторонам по формуле Герона. 3. Нахождение длины отрезка по двум точкам. Функции приведены в последовательности, выводимой из логического рассуждения. Удачи! ИМХО, тему можно закрывать! -------------------- "От вчерашних побед остаётся усталость, если завтрашний день не сулит ничего..." |
|||
|
||||
Dmi3ev |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
Walker правильно говорит, что-то типа этого
создал класс точки MyPoint вот текст mypoint.h
создал класс отрезка вот текст mysegment.h
я все делал быстро, но должно работать -------------------- |
||||||
|
|||||||
Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 1 Всего: 134 |
-------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
BOB4uK |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 28.2.2004 Репутация: нет Всего: нет |
Спасибо!
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |