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

Вниз

Определение координат точки   Найти похожие ветки 

 
BRemB   (2004-09-13 10:36) [0]

Добрый день, мастера! У меня такая задача, на плоскости лежат три (может быть и больше) точки, мы знаем их координаты. Необходимо установить (если это возможно) четвертую точку на определенные расстояния от первых трех. Например, три точки A,B,C имееют координаты (X1,Y1), (X2,Y2) и (X3,Y3). Надо установить точку D на расстоянии до точки A рывным r1, до точки B равным r2, до точки С равным r3. Подскажите пожалуйста алгоритм. Если можно еще решить задачу и для большего количества точек, в примере их 3, а можно ли решить так, чтоб пользователь сам задавал количество точек. Для одной и двух точек ищется путем решения системы уравнений, а здесь как?


 
wiz ©   (2004-09-13 10:54) [1]

ну... во-первых, ты понимаешь, что твоя задача (даже для трёх точек и трёх радиусов) - переопределена, т.е. в зависимости от условий, она может и не иметь (и скорее всего не будет иметь) решений ???

Вернее она будет иметь иметь решения для любой пары точек и пары радиусов, но эти решения не будут пересекаться


 
BRemB   (2004-09-13 11:08) [2]

Да, я это прекрасно понимаю, т.е. вся задача сводится к решению попарных уравнений, т.е. поиск точки пересечения первой и второй окружности, второй и третьей, третьей и первой? Если координаты совпадают, то мы получили найденную координату. Т.е. задача своидится к простому перебору?


 
wiz ©   (2004-09-13 15:58) [3]

ну да... по-крайней мере пока я больше решений не вижу. Вечерком еще раз подумаю, мож чего еще придёт в голову


 
NikotiN ©   (2004-09-13 17:16) [4]

Что все забыли как строить равнобедренный треугольник, зная две точки и длину двух сторон?

Геометрический способ(не связан с компом):
1. строишь из каждой точки окружность. Все точки, лежащие на линии, равноудалены от первой точки. :)
2. Строишь из второй точки окружность.... Те точки, где окружности пересекаются (1-2 шт) - равноудалённые точки от двух базовых точек.
3. Строишь окружность на 3 точке. Если она пересекает те 1-2 точки(хотя две навряд ли), то место пересечения - равноудалённая точка от всех трёх....
.....

Как написать.
Сначала ищешь общие точки окружностей от двух точек. Это легко. Построй треугольник, ты ведь знаешь расстояние между точками, а также две других стороны(радиусы), находишь координаты общей точки(третья вершина треугольника), не забудь, что точек может быть две штуки (с двух сторон, относительно линии заданной этими точками).
Теперь же проще, просто сравниваешь расстояние от найденных точек, до оставшихся базовых....

подробнее? а то я и так немного намудрил... :)


 
wiz ©   (2004-09-13 18:20) [5]

2 NikotiN: хрм-м-м... ты уж меня извини, но чем твой алгоритм отличается от "...ищется путем решения системы уравнений..." (c)BRemB ??????


 
wiz ©   (2004-09-13 18:22) [6]

PS (2 NikotiN): Кроме того, читай внимательнее пост [1]... Человека интересуют различные радиусы от точек. (Конечно, это сильно ничего не меняет, но всё же...)


 
NikotiN ©   (2004-09-13 19:49) [7]

wiz ©   (13.09.04 18:22) [6] это вообще ничего не меняет



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

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

Наверх




Память: 0.46 MB
Время: 0.05 c
4-1100703681
Alexey Romanskiy
2004-11-17 18:01
2005.01.09
Убрать регулятор звука из трея


14-1103545379
DrDiablo
2004-12-20 15:22
2005.01.09
Можно ли сделать клиент-сервер чат, с контакт-листом


1-1102430073
Aser
2004-12-07 17:34
2005.01.09
Как включить WordWrap в TSynEdit? (Delphi-подобный RichEdit)


14-1103632846
juice
2004-12-21 15:40
2005.01.09
DelphiWorld


1-1103703324
liver
2004-12-22 11:15
2005.01.09
MDI & MainMenu





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский