|
0 / 0 / 0
Регистрация: 22.02.2011
Сообщений: 4
|
|
Найти координаты центра окружности по трём точкам15.06.2012, 16:07. Показов 73786. Ответов 10
Метки нет (Все метки)
Дано координаты 3-х точек:
1. Точка Р1 с координатами Х1 и Y1; 2. Точка Р2 с координатами Х2 и Y2; 3. Точка Р3 с координатами Х3 и Y3; Найти: Координаты центра окружности С (Х; Y), пересекающей три данные точки.
0
|
|
| 15.06.2012, 16:07 | |
|
Ответы с готовыми решениями:
10
|
|
Змеюка одышечная
9864 / 4595 / 178
Регистрация: 04.01.2011
Сообщений: 8,574
|
|
| 15.06.2012, 16:11 | |
|
Уравнение окружности с центром в точке (a,b) и радиусом R имеет вид:
(x-a)2+(y-b)2=R2 Подставляете известные координаты точек и решаете полученную систему из 3-х уравнений относительно неизвестных a,b,R.
1
|
|
|
1077 / 658 / 68
Регистрация: 10.02.2011
Сообщений: 518
|
||
| 15.06.2012, 16:47 | ||
|
Треугольник P1P2P3 вписан в данную окружность. А как известно, центр вписанной окружности расположен в точке пересечения серединных перпендикуляров к сторонам треугольника. Следовательно, для решения данной задачи достаточно: 1) Найти координаты середины отрезка P1P2 (пусть это будет точка M) и составить уравнение серединного перпендикуляра a к отрезку P1P2 по точке M и вектору нормали P1P2. 2) Аналогично найти координаты середины отрезка P1P3 (пусть это будет точка K) и составить уравнение серединного перпендикуляра b к отрезку P1P3 по точке K и вектору нормали P1P3. 3) Найти координаты точки пересечения серединных перпендикуляров a и b, решив соответствующую систему двух линейных уравнений.
2
|
||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||
| 24.08.2015, 00:26 | ||
|
Сейчас таже задача…
Пытался уравнениями...ничерта не помню =). Потом пытался как вы описывали Две точки на окружности а третья нет… может не туда подставлял. Ma=(y2-y1)/(x2-x1) Mb=(y3-y2)/(x3-x2) x=(Ma*Mb*(y1-y3)+Mb*(x1+x2)-Ma*(x2+x3))/(2*Mb-Ma) y=-1/Ma*(x0-(x1+x2)/2)+((y1+y2)/2) Вот работающий метод без уравнений проверил работает =). http://delphimaster.net/view/9-1172844946 Может пригодиться кому-то а не болтология =). Добавлено через 2 минуты Вот вдруг тот сайт исчезнет. A := x2 - x1; B := y2 - y1; C := x3 - x1; D := y3 - y1; E := A * (x1 + x2) + B * (y1 + y2); F := C * (x1 + x3) + D * (y1 + y3); G := 2 * (A * (y3 - y2) - B * (x3 - x2)); if G = 0 then Exit; Cx := (D * E - B * F) / G; Cy := (A * F - C * E) / G;
3
|
||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 24.08.2015, 11:41 | |
|
А зачем код С++ в разделе геометрия? Круть раздела в том что здесь описывают решения в математической форме общепринятой в книгах, т.е. в символьной форме. Тогда любой может применить метод в любой программе или на любом языке программирования.
А тут у вас куча высокоуровневых специфичных функций которые введут в ступор любого далекого от программирования… Наверно идеальное решение в направлении упрощения символьной формы 2 уравнений. Просто я не помню как упрощать, а Mathcad выдает метровый бред ( как всегда)).
0
|
|
| 24.08.2015, 14:44 | ||
|
То что Вы привели раньше похоже на обычное решение системы линейных ур-й (G - главный определитель и.т.д). Это правильно (если внимательно переписали), но громоздко. Насчет "математической формы". Если это длинная "сопля-формула" (c x1, y1,,), то разглядеть в ней какой-то смысл и понять идею решения невозможно. Остается только тупенько (унизительно) списывать готовое, и не дай бог ошибиться Ну иногда и так приходится делать. Но мне бы хотелось записать решение компактно, "в векторах", пока не знаю как это сделать.
0
|
||
|
4218 / 3418 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
|
|
| 24.08.2015, 15:40 | |
|
Всё уже выведено: https://ru.wikipedia.org/wiki/... 1.82.D0.B8
1
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||||||
| 24.08.2015, 16:50 | ||||||
|
0
|
||||||
|
0 / 0 / 0
Регистрация: 22.02.2017
Сообщений: 1
|
|
| 22.02.2017, 19:28 | |
|
Excalibur921, Я получил точно такую же формулу, только ее немного свернул. Исходил из геометрии построения двух срединных перпендикуляров и находил точку их пересечения. Окончательно так вышло:
x0 := -(1/2)*(y1*(x2^2-x3^2+y2^2-y3^2)+y2*(-x1^2+x3^2-y1^2+y3^2)+y3*(x1^2-x2^2+y1^2-y2^2))/(x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2)) y0 := (1/2)*(x1*(x2^2-x3^2+y2^2-y3^2)+x2*(-x1^2+x3^2-y1^2+y3^2)+x3*(x1^2-x2^2+y1^2-y2^2))/(x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2)) Очень красивые формулы! Если получится сейчас, дам наглядный рисунок:
0
|
|
|
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 5
|
||||||
| 15.12.2017, 10:08 | ||||||
|
Excalibur921, Большое Спасибо выручил Товарищ вот написал на паскале
Кликните здесь для просмотра всего текста
0
|
||||||
| 15.12.2017, 10:08 | |
|
Помогаю со студенческими работами здесь
11
Составить уравнение плоскости и найти координаты центра и радиус окружности
Найти координаты вершины параболы по трем заданым точкам Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|