Определите центр / центр круга, используя несколько точек - PullRequest
2 голосов
/ 10 февраля 2011

Мне было интересно, может ли кто-нибудь помочь мне, я могу сделать это ручкой и бумагой, используя компас, но не могу сделать это в ActionScript 3.

Как следует из названия, по сути, мне нужно найтицентр круга, используя несколько точек из радиуса.

1 Ответ

10 голосов
/ 10 февраля 2011

Требуется уравнение для круга из 3-х точек .У доктора Матха также есть несколько хороших объяснений по вашему вопросу.

Редактировать : я реализовал это в JavaScript + SVG;Вы можете увидеть интерактивный результат на моем веб-сайте:
http://phrogz.net/SVG/3-point-circle.xhtml

Вот соответствующий код (я создал класс Point, как в ActionScript, со свойствами .x и .y):

function findCircleCenter(p1,p2,p3){
  var d2  = p2.x*p2.x + p2.y*p2.y;
  var bc  = (p1.x*p1.x + p1.y*p1.y - d2) / 2;
  var cd  = (d2 - p3.x*p3.x - p3.y*p3.y) / 2;
  var det = (p1.x-p2.x) * (p2.y-p3.y) - (p2.x-p3.x) * (p1.y-p2.y);
  if (Math.abs(det) > 1e-10) return new Point(
    (bc * (p2.y-p3.y) - cd * (p1.y-p2.y)) / det,
    ((p1.x-p2.x) * cd - (p2.x-p3.x) * bc) / det
  );
}

Редактировать 2 : Для удовольствия, вместо 3 точек, определяющих один круг, как насчет 6 точек, определяющих 20?:)
http://phrogz.net/SVG/3-point-circle2.xhtml

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