Найти центр окружности из трех точек треугольника - PullRequest
2 голосов
/ 19 апреля 2011

Я пытаюсь найти центр окружности из заданных трех точек треугольника …… ..

ПРИМЕЧАНИЕ: все эти три точки обозначены координатами X, Y и Z. Значения точек указаны в 3D

Я знаю, что центр окружности - это точка, где пересекаются правые биссектрисы ...

Но для этого мне нужно найти среднюю точку каждой стороны, затем правые биссектрисы, а затем точку пересечения этой… .. это долго и ошибка некоторого процесса ……

Не существует ли какой-либо формулы , которая просто принимает в качестве входных данных эти три точки треугольника и дает нам Круговой центр треугольника ……?

спасибо .........

Ответы [ 2 ]

5 голосов
/ 19 апреля 2011

Вики-страница на Круг в окружности содержит точечные и перекрестные произведения трех вершинных векторов. Он также имеет формулу для радиуса круга, если вам это интересно.

3 голосов
/ 19 апреля 2011

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

Для направления косинуса, пожалуйста, проверьте эту статью в Википедии.

(Способ нахождения координатной геометрии и геометрии - на основе теоремы о том, что перпендикулярная линия от центра окружности делит хорду на части)

  1. Найти уравнение плоскости.

    equation of the plane

    Это уравнение должно приводить к виду

    enter image description here

    и направление косинусов (линии, перпендикулярной плоскости, определяет плоскость), поэтому направление косинусов линии, перпендикулярной этой линии, составляет

    , данное этой ссылкой уравнений - 8,9,10 (за исключением замены на l, m, n).

  2. Найти уравнение линий (все три) в 3-й
    (x-x1)/l=(y-y1)/m=(z-z1)/n (по направлению косинусов) или
    (x-x1)/(x2-x1)=(y-y1)/(y2-y1)=(z-z1)/(z2-z1)

  3. Теперь нам нужно найти уравнение прямой

    а) это перпендикуляр к линии, из 2 (пусть l1, m1, n1 - направляющие косинусы этой линии)

    b) должен содержаться на месте от 1 (пусть l2, m2, n2 - направляющие косинусы этой линии, перпендикулярной плоскости)

  4. Найдите и решите (хотя бы две строки) из 3, убедитесь, что вы сможете найти центр круга.

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

    l1*l+m1*m+n1*n = 0 и l2*l+m2*m+n2*n = 0, где l, m, n - направляющие косинусы нашей линии, теперь, решая это два уравнения, мы можем получить l, m interms от n. И мы используем это выясненное (x1,y1,z1) и значение l, m, 1, и мы получим уравнение.

Другой процесс заключается в решении уравнения, приведенного в этом уравнении

https://stackoverflow.com/questions/5725871/solving-the-multiple-math-equations

Какой самый смертоносный путь.

Другой метод использует преимущество компьютера (путем итерации) - как я его называю (но для этого вам нужно знать диапазон координат, и он потребляет много памяти)

это так (Вы можете сделать это более точно, увеличивая на 1/10), но, конечно, плохой путь.

for(i=minXrange, i>=maxXrange; i++){
  for(j=minYrange, j>=maxYrange; j++){
    for(i=minZrange, i>=maxZrange; k++){
      if(((x1-i)^2 + (y1-j)^2 + (z1-k)^2) == (x2-i)^2 + (y2-j)^2 + (z2-k)^2) == for z)){
        return [i, j, k];
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...