Форум программистов, компьютерный форум, киберфорум
Геометрия
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/368: Рейтинг темы: голосов - 368, средняя оценка - 4.51
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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.06.2012, 16:07
Ответы с готовыми решениями:

Как найти центр окружности по трём точкам
Есть 3 точки A(x,y,z), B(x,y,z), C(x,y,z). Именно с 3-мя координатами. Очень хочется найти центр построенной по этим точкам окружности и...

Как найти площадь сектора окружности, зная координаты центра окружности и двух равноудаленных точек
Можно ли как-то найти площадь сектора, зная координаты центра (х0, у0) окружности и двух равноудаленных точек ( (х1, у1) и (х2, у2)) ?

Найти координаты центра окружности
Имеется отрезок y=99, -12\leq x\leq 12 и окружность (x+45)^2+(y-38)^2=63^2. Каким образом можно найти координаты центра окружности,...

10
Змеюка одышечная
 Аватар для vetvet
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
 Аватар для Cute
1077 / 658 / 68
Регистрация: 10.02.2011
Сообщений: 518
15.06.2012, 16:47
Цитата Сообщение от tehnik-2 Посмотреть сообщение
Дано координаты 3-х точек:

1. Точка Р1 с координатами Х1 и Y1;
2. Точка Р2 с координатами Х2 и Y2;
3. Точка Р3 с координатами Х3 и Y3;

Найти: Координаты центра окружности С (Х; Y), пересекающей три данные точки.
Есть ещё один вариант решения предложенной задачи (он сложнее, чем способ, указанный уважаемой vetvet).
Треугольник 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
Сейчас таже задача…
Пытался уравнениями...ничерта не помню =).
Потом пытался как вы описывали
Цитата Сообщение от Cute Посмотреть сообщение
Есть ещё один вариант решения предложенной задачи
Вот похоже описываете это: http://algolist.manual.ru/math... circle.php
Две точки на окружности а третья нет… может не туда подставлял.
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
1968 / 824 / 115
Регистрация: 01.10.2012
Сообщений: 4,864
Записей в блоге: 2
24.08.2015, 11:37
Цитата Сообщение от vetvet Посмотреть сообщение
Уравнение окружности с центром в точке (a,b) и радиусом R имеет вид:
(x-a)2+(y-b)2=R2
Подставляете известные координаты точек и решаете полученную систему из 3-х уравнений относительно неизвестных a,b,R.
Так-то оно так, но это "алгебра", в геометрии решения должны быть изящны. Подумаю напишу (сходу не вышло :-)
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
24.08.2015, 11:41
А зачем код С++ в разделе геометрия? Круть раздела в том что здесь описывают решения в математической форме общепринятой в книгах, т.е. в символьной форме. Тогда любой может применить метод в любой программе или на любом языке программирования.
А тут у вас куча высокоуровневых специфичных функций которые введут в ступор любого далекого от программирования…

Наверно идеальное решение в направлении упрощения символьной формы 2 уравнений.
Просто я не помню как упрощать, а Mathcad выдает метровый бред ( как всегда)).
0
1968 / 824 / 115
Регистрация: 01.10.2012
Сообщений: 4,864
Записей в блоге: 2
24.08.2015, 14:44
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Просто я не помню как упрощать, а Mathcad выдает метровый бред ( как всегда)).
А кто такие "a" и "b" в Ваших исходных ур-ях? Если имеется ввиду каноническое ур-е окружности, то это расстояния по x и y от точек до центра, они для всех точек разные

То что Вы привели раньше похоже на обычное решение системы линейных ур-й (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
Цитата Сообщение от Igor3D Посмотреть сообщение
А кто такие "a" и "b" в Ваших исходных ур-ях?
X и Y центра окружности. Вроде ж так можно, я думал узнали уравнение окружности.
Цитата Сообщение от Igor3D Посмотреть сообщение
Если это длинная "сопля-формула" (c x1, y1,,),
Это результат решателя Mathcad, как правило все мат пакеты слабы в символьной форме. Отсюда и метровые формулы где на самом деле после сокращения 1 строчка…
Цитата Сообщение от Igor3D Посмотреть сообщение
Остается только
Зачем? Я ж привел решение уже.. и много проще . А правильно сократив уравнения будет наверно еще проще.
Цитата Сообщение от Igor3D Посмотреть сообщение
хотелось записать решение компактно, "в векторах",
Так вроде это оно и есть пост #4.
Цитата Сообщение от Том Ардер Посмотреть сообщение
Всё уже выведено:
Наверно вычислять через крамера дольше и больше чем методом что я привел.
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, Большое Спасибо выручил Товарищ вот написал на паскале

Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function leng(x1, y1, x2, y2 : integer) : real;
begin
     leng :=  sqrt(sqr(y1 - y2) + sqr(x1 - x2));
end;
 
function checkTria (x1, y1, x2, y2, x3, y3: integer) : boolean;
var
   ab, bc, ac : real;
begin
     ab := leng(x1, y1, x2, y2);
     bc := leng(x2, y2, x3, y3);
     ac := leng(x1, y1, x3, y3);
     checkTria := ((ab + bc - ac) > 0) and ((ab + ac - bc) > 0) and ((bc + ac - ab) > 0);
  end;
 
var
   x1, x2, x3, y1, y2, y3, a, b, c ,d, e ,f, g : integer;
   xc, yc, r : real;
 
begin
     Write('Введите 3 координаты: ');
     Readln(x1, y1, x2, y2, x3, y3);
 
     if not(checkTria(x1, y1, x2, y2, x3, y3)) then Writeln('Такого треугольника не существует')
     else
     begin
 
 
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;
xc := (D * E - B * F) / G;
yc := (A * F - C * E) / G;
              r := (sqrt(sqr(x1 - xc) + sqr(y1 - yc)));
 
           Writeln('Центр окружности: ', xc:0:2, ', ', yc:0:2);
           Writeln('Радиус: ', r:0:2);
     end;
     Readln;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.12.2017, 10:08
Помогаю со студенческими работами здесь

Найти координаты центра описанной окружности (формула есть но не понятна)
На форуме нашёл ниже следующий ответ, но я не умею перемножать матрицу. На картинке мой треугольник, точка "О"...

Составить уравнение плоскости и найти координаты центра и радиус окружности
Дано уравнение сферы S. а) Составить уравнение плоскости,...

Уравнение окружности по трем точкам в пространстве
\begin{cases}(x-x_0)^2+(y-y_0)^2+(z-z_0)^2=R^2,\\ a{\cdot}(x-x_0)+b{\cdot}(y-y_0)+c{\cdot}(z-z_0) = 0.\end{cases} Надо...

Найти координаты всех вершин правильного многоугольника, зная координаты центра и радиус описанной окружности.
Дан правильный N-угольник с центром в точке (X, Y) и с радиусом описанной окружности R. Найти координаты всех вершин многоугольника. ...

Найти координаты вершины параболы по трем заданым точкам
Помогите написать функцию. Точки задаются в коде. Как из функции вернуть два значения? main(){ float x1=1,y1=1; float x2=5,y1=30; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
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 Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru