Я хочу вычислить угол между двумя гранями лица в трехмерном пространстве.
Я подумал, что мог бы использовать решение в этом вопросе: Угол между двумя трехмерными векторами с одинаковым началом в одной плоскости
Однако, когда я пробую его на прямоугольнике со всеми углами 90 градусов, я получаю один угол, который равен 90 градусам, и три, который равен 270.
У меня очень мало знаний о математике, связанной с геометрией, поэтому я борюсь с этим и явно сделал неверное предположение.
Так как рассчитать угол между двумя ребрами на грани?
Что я пробовал:
def self.full_angle_between( vector1, vector2, normal )
angle = vector1.angle_between( vector2 )
direction = normal % ( vector1 * vector2 )
angle = 360.degrees - angle if direction < 0.0
angle
end
normal
лицо нормальное
vector1
и vector2
оба происходят из одной вершины, и каждый указывает на следующую вершину в любом направлении
vector1.angle_between( vector2 )
см. Метод в SketchUp Rubu API: http://code.google.com/apis/sketchup/docs/ourdoc/vector3d.html#angle_between
Возвращает угол от 0 до 180 в радианах.
360.degrees
возвращает градусы в радианах. Также метод SketchUp API.
Когда я перебираю все вершины в прямоугольнике, я получаю три угла, о которых сообщается как 270 градусов. Почему?