Ответы пользователя по тегу Геометрия
  • Формула для расчета движения точки по окружности в трехмерном пространстве?

    @Taus
    Наверно, самое простое представление в этом случае - это с помощью трёх векторов.
    Пусть центр окружности в начале координат, f1 -- какой-то вектор, что точка с его координатами лежит на окружности, n -- вектор единичной нормали к плоскости окружности. Тогда окружность задаётся:
    r(t) = f1 Cos(t) + [n x f1] Sin(t), 0 < t < 2pi ([n x f1] -- векторное произведение)
    Перенести центр окружности в любой точку можно, добавив вектор r0: r'(t) = r0 + r(t).
    Ответ написан
    Комментировать
  • Как правильно сравнивать диапазоны углов?

    @Taus
    Одно из решений. Пусть сектор A описывается упорядоченной парой {A1,A2}, т.е. сектором считается область получающаяся при обходе окружности по часовой стрелке от точки А1 до точки А2.
    1. Привести значения всех углов к диапазону от [0, 2pi).
    2. Если A1 > A2, то разобъём сектор на два: S1 = [A1, 2pi) U [0, A2].
    3. С помощью алгебры множеств и алгоритма пересечения обычных отрезков можно найти пересечение:
    [A1, A2] ∩ [B1, B2] - обычный алгоритм
    ( [A1, 2pi) U [0, A2] ) ∩ [B1, B2] = ( [B1, B2] ∩ [A1, 2pi) ) U ( [B1, B2] ∩ [0, A2] ) - для каждого из пересечений обычный алгоритм
    ( [A1, 2pi) U [0, A2] ) ∩ ( [B1, 2pi) U [0, B2] ) - очевидно, что пересекаются как минимум в точке 0
    Ответ написан
    Комментировать
  • Как вписать окружность между двумя сторонами треугольника и дугой?

    @Taus
    Найти центр окружности по дуге не составляет труда. Поэтому будет стартовать с этого. Дан треугольник DCE, где CE - дуга окружности с центром A. При чём точка D лежит с левой стороны от вектора EC.
    1. Проведём биссектрису h между сторонами DE и DC
    2. Построим перпендикуляр из центра окружности к биссектрисе AA'. A' точка симметричная к центру окружности относительно биссектрисы h
    3. Построим прямую j параллельную стороне DE на расстоянии равном AE, радиусу окружности. Прямая j и AA' пересекутся в точке G.
    4. Построим среднее-геометрическое отрезков GA' и GA:
      1. Отложим на прямой AA' отрезок HG так что HG=GA'
      2. Проведём окружность p с диаметром HA
      3. Проведём перпендикуляр к прямой AA' в точке G. Он пересечёт окружность p в точке I. GI - среднее геометрическое GA' и GA

    5. Отложим на прямой j отрезок GJ длиной GI
    6. Построим перпендикуляр к j в точке J. Он пересечёт биссектрису h в точке L
    7. Точка L - центр искомой вписанной окружности
    8. Строим перпендикуляр из L на сторону DC и получаем радиус окружности LM

    Построения в geogebra
    Восстанавливал построение по алгебре, поэтому очень вероятно, что существует решение проще.
    Ответ написан
  • Как получить каноническое уравнение эллипса по N его точкам?

    @Taus
    1. Для проверки попадания точки внутрь эллипса - ваше предложение наиболее разумное. Благо все преобразования аффинные и для них обратные строятся просто. Находите прообраз интересующей точки в плоскости окружности и легко проверяете попадание.
    2. При аффинных преобразованиях перпендикулярные диаметры окружности перейдут в сопряжённые диаметры эллипса. Зная векторы сопряжённых диаметров c1, c2, легко вычислить площадь эллипса π Abs(VectorProduct(c1,c2)).

    Если нужны какие-то ещё параметры эллипса, то их можно вычислить из свойств сопряжённых диаметров (в английской литературе conjugate diameters).
    Главные диаметры часто строят с помощью Rytz's consturction.
    Ответ написан