![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по геометрии [Delphi, Windows]
Хранитель_7К © (2003-01-10 10:55:00)Такой вопрос - есть три некие точки a,b,c у них есть координаты x и y соответсвенно, z не нужна. И есть такая точка d которая может находиться внутри треугольника abc, а может и не находиться внутри. Третьего не дано :-)
Так вот вопрос - как по "научному" определить это, красиво в одну формулу.
Ибо я нашел только один способ:
if (dx<ax) and (dx>bx) and (dx>cx)... и т.д.
Понимаю, что не красиво и грубо. Но как?
Извините если глупый вопрос, плохо в школе учился :-)
Хранитель_7К (2003-01-10 13:06:00) [1]Ну вот это то что нужно
Спасиба !
Digitman (2003-01-10 12:16:00) [2]Треугольник - частный случай. В общем случае это верно для любого выпуклого полигона.
В 3D-графике это - самый простой и эффективный метод определения видимости грани 3D-объекта, проецируемого на 2D-плоскость визуализации
Digitman (2003-01-10 12:06:00) [3]Вру. Не скалярное, а векторное произведение.
Пусть треугольник ABC задан вершинами (Xa,Ya), (Xb,Yb), (Xc,Yc) так, что направление обхода вершин совпадает с направлением против часовой стрелки.
Пусть точка D имеет координаты (Xd, Yd).
Тогда
Za = (Xb-Xa)*(Yd-Ya) - (Yb-Ya)*(Xd-Xa)
Zb = (Xb-Xa)*(Yd-Ya) - (Yb-Ya)*(Xd-Xa)
Zc = (Xa-Xc)*(Yd-Yc) - (Ya-Yc)*(Xd-Xc)
если и Za > 0 и Zb > 0 и Zc > 0, то D лежит внутри треугольника
Хранитель_7К (2003-01-10 11:43:00) [4]Ну найду я эти произведения a*b и b*c и что дальше, как принадлежность точки d опрделить?
Или я чего то недопонимаю.
Shadow (2003-01-10 11:39:00) [5]_ _
a*b=X1*X2+Y1*Y2
Хранитель_7К (2003-01-10 11:38:00) [6]Ну и как мне эта формула поможет, интересно...
Да и угол между гранями a и b просто так не дается.
Его еще найти надо.
Shadow (2003-01-10 11:32:00) [7]
> Говорит, только формулу не помню, подскажите троечнику.
>
_ _ _ _ _ _
a*b=|a|*|b|*cos(a;b)
Хранитель_7К (2003-01-10 11:30:00) [8]Говорит, только формулу не помню, подскажите троечнику.
Digitman (2003-01-10 11:23:00) [9]
> плохо в школе учился
Скалярное произведение векторов тебе о чем-то говорит ?