Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2003.06.16;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по геометрии   Найти похожие ветки 

 
Хранитель_7К   (2003-01-10 10:55) [0]

Такой вопрос - есть три некие точки a,b,c у них есть координаты x и y соответсвенно, z не нужна. И есть такая точка d которая может находиться внутри треугольника abc, а может и не находиться внутри. Третьего не дано :-)
Так вот вопрос - как по "научному" определить это, красиво в одну формулу.
Ибо я нашел только один способ:
if (dx<ax) and (dx>bx) and (dx>cx)... и т.д.
Понимаю, что не красиво и грубо. Но как?
Извините если глупый вопрос, плохо в школе учился :-)


 
Digitman   (2003-01-10 11:23) [1]


> плохо в школе учился


Скалярное произведение векторов тебе о чем-то говорит ?


 
Хранитель_7К   (2003-01-10 11:30) [2]

Говорит, только формулу не помню, подскажите троечнику.


 
Shadow   (2003-01-10 11:32) [3]


> Говорит, только формулу не помню, подскажите троечнику.
>


_ _ _ _ _ _
a*b=|a|*|b|*cos(a;b)


 
Хранитель_7К   (2003-01-10 11:38) [4]

Ну и как мне эта формула поможет, интересно...
Да и угол между гранями a и b просто так не дается.
Его еще найти надо.


 
Shadow   (2003-01-10 11:39) [5]

_ _
a*b=X1*X2+Y1*Y2


 
Хранитель_7К   (2003-01-10 11:43) [6]

Ну найду я эти произведения a*b и b*c и что дальше, как принадлежность точки d опрделить?
Или я чего то недопонимаю.


 
Digitman   (2003-01-10 12:06) [7]

Вру. Не скалярное, а векторное произведение.

Пусть треугольник 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 лежит внутри треугольника



 
Digitman   (2003-01-10 12:16) [8]

Треугольник - частный случай. В общем случае это верно для любого выпуклого полигона.
В 3D-графике это - самый простой и эффективный метод определения видимости грани 3D-объекта, проецируемого на 2D-плоскость визуализации


 
Хранитель_7К   (2003-01-10 13:06) [9]

Ну вот это то что нужно
Спасиба !



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2003.06.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
1-50350
killer
2003-06-03 17:48
2003.06.16
Как програмно создать кнопку?


1-50346
vitall
2003-06-01 05:17
2003.06.16
OpenPictureDialog ? :)


7-50532
nokk9
2003-04-11 02:14
2003.06.16
Телефон


1-50398
EvgeniyR
2003-05-30 10:24
2003.06.16
Генератор случайных чисел


14-50477
Alekss S.
2003-05-28 16:51
2003.06.16
DBD, запуск с параметрами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский