|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.06.2014, 15:21 | #1 |
Регистрация: 12.10.2013
Сообщений: 4
|
Найти центр сферы по 4 точкам на ее поверхности
Подскажите простой, и универсальный способ нахождения центра сферы, если даны 4 точки в пространстве на ее поверхности. И возможно ли провести ее вообще?(формула для проверки). Думаю радиус искать не нужно, если известен центр сферы и точка на поверхности, тогда вместо 4 неизвестных будет 3, может это упростит расчет.
Не знаю как составить уравнения, столько неизвестных еще никогда не было. Чтобы я позже в экселе например только менял координаты точек, а оно считало центр сферы и радиус, это нужно для отладки перед кодированием в С++. |
25.06.2014, 16:50 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
(x0-x1)^2+(y0-y1)^2+(z0-z1)^2=(x0-x2)^2+(y0-y2)^2+(z0-z2)^2=(x0-x3)^2+(y0-y3)^2+(z0-z3)^2=(x0-x4)^2+(y0-y4)^2+(z0-z4)^2
(x0,y0,z0) - центр сферы (xi,yi,zi) i=1..4 - точки на сфере Из этого равенства получается система из 3 равенств с 3 неизвестными: (x0-x1)^2+(y0-y1)^2+(z0-z1)^2=(x0-x2)^2+(y0-y2)^2+(z0-z2)^2 (x0-x1)^2+(y0-y1)^2+(z0-z1)^2=(x0-x3)^2+(y0-y3)^2+(z0-z3)^2 (x0-x1)^2+(y0-y1)^2+(z0-z1)^2=(x0-x4)^2+(y0-y4)^2+(z0-z4)^2 После переноса в левую часть: (x2-x1)(2x0-x1-x2)+(y2-y1)(2y0-y1-y2)+(z2-z1)(2z0-z1-z2)=0 (x3-x1)(2x0-x1-x3)+(y3-y1)(2y0-y1-y3)+(z3-z1)(2z0-z1-z3)=0 (x4-x1)(2x0-x1-x4)+(y4-y1)(2y0-y1-y4)+(z4-z1)(2z0-z1-z4)=0 Получилась система линейных уравнений. Осталось представить в виде: Ax = b x = A^(-1) * b Вики
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 25.06.2014 в 16:58. |
28.06.2014, 15:48 | #3 |
Регистрация: 12.10.2013
Сообщений: 4
|
Или через детерменанты.
http://www.cyberforum.ru/geometry/th...ml#post6371551 |
29.06.2014, 01:35 | #4 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Можно искать так. Три точки - это окружность/треугольник/плоскость. Радиус сферы проходит через центр окружности и ортогонален плоскости, в которой она лежит. Стало быть, нам достаточно найти уравнения двух таких прямых-радиусов и найти их пересечение.
По трем точкам легко находим уравнение плоскости, Ax+By+Cz+D=0, здесь (A, B, C) - это нормаль, а значит, радиус параллелен этому вектору. Нужно только найти, через какую точку он проходит. Это тоже несложно, эта точка - пересечение серединных перпендикуляров (медиатрисс) к сторонам треугольника (центр описанной окружности). Отсюда в принципе можно вывести все формулы и радостно ими пользоваться.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Составление программы для вычисления площади полной поверхности и объема сферы | xprinceps | Фриланс | 4 | 11.11.2013 18:54 |
Найти центр сложной фигуры | mutabor | Свободное общение | 25 | 01.03.2010 23:36 |
Найти центр ящика | Ulex | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 22.01.2010 00:08 |
Найти объём куба и площадь его боковой поверхности BASIC | Ветренная | Помощь студентам | 23 | 02.06.2008 13:15 |
Help!!!Движение точки по поверхности сферы | alex23xandr | Помощь студентам | 4 | 20.05.2007 14:45 |