Здравствуйте, есть интересная задачка!
Программирую маленькую САПР, нужно в пространстве сориентировать деталь относительно опорных обьектов.
Конкретный вопрос:
Есть две плоские поверхности П1, П2 поверхности имеют общее ребро. Его направление V3(m3,n3,p3)
и базовая точка М(Xm, Ym, Zm) определены. Определены два вектора V1(m1,n1,p1), V2(m2,n2,p2) ,
которые принадлежат поверхностям и перпендикулярны общему ребру.
рисунок
Необходимо найти вектор V0(m,n,p) имеющий длину L, перпендикулярный V3 и повернут под углом А относительно поверхности П1
внутрь или наружу угла (два варианта взависимости от направления нормали). Нормали тоже известны, в разных случаях
имеют разное направление.
Вобщем как-то так.
Спасибо за идеи.
Программирую маленькую САПР, нужно в пространстве сориентировать деталь относительно опорных обьектов.
Конкретный вопрос:
Есть две плоские поверхности П1, П2 поверхности имеют общее ребро. Его направление V3(m3,n3,p3)
и базовая точка М(Xm, Ym, Zm) определены. Определены два вектора V1(m1,n1,p1), V2(m2,n2,p2) ,
которые принадлежат поверхностям и перпендикулярны общему ребру.
рисунок
Необходимо найти вектор V0(m,n,p) имеющий длину L, перпендикулярный V3 и повернут под углом А относительно поверхности П1
внутрь или наружу угла (два варианта взависимости от направления нормали). Нормали тоже известны, в разных случаях
имеют разное направление.
Вобщем как-то так.
Спасибо за идеи.
Так как Vo⊥V3, то их скалярное произведение равно 0 - первое уравнение
Длина Vo равна L, то есть m^2+n^2+ p^2= L^2 - второе уравнение
И с нормалью n1 к П1 Vo должен образовывать в зависимости от направления нормали угол либо 90-А либо 90+А
А косинус определяется через скалярное произведение.
Вообще-то даже есть формула для определения угла прямой и плоскости через синус
Отсюда получается еще одно уравнение
==
Но это все с точки зрения ангема.
Нахожу еще два вектора B и С их длины |B|=L*cos(A), |C|=L*sin(A), направлены они по V1 и n1 соответственно
Сумма векторов и будет V0. Одна формула для разных направлений нормали.
рисунок