Тема: Угол между прямой и плоскостью
Простите за лаймерский вопрос, но как узнать угол между прямой и плоскостью?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Угол между прямой и плоскостью
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Простите за лаймерский вопрос, но как узнать угол между прямой и плоскостью?
> Михаил
Очевидно построить плоскость B проходящую через интересующую нас прямую Line и перпендикулярную к интересующей нас плоскости А и затем измерить угол в плоскости B между прямой Line и линией пересечения плоскостей А и B.
Либо спроецировать прямую Line на плоскость А и измерить угол между и прямой и ее проекцией.
Спасибо, я сам разобрался, может это и не венец програмиссткой мысли, но всеже работает в 2d
Function GetAngle(p1, p2) As Double ' угол между прямой и плоскостью zox результат в градусах Dim height As Double Dim width As Double Dim tmpAng As Double ' если первая точка не находится в 0,0, то смещаем 1 и 2 точки на величину смещения p2(0) = p2(0) - p1(0) p2(1) = p2(1) - p1(1) p1 = Array(0, 0) ' ширина и высота треугольника width = Abs(p2(0) - p1(0)) height = Abs(p2(1) - p1(1)) ' полюбому что то вернем tmpAng = 0 ' вычисляем угол If width > 0 And height > 0 Then tmpAng = Atn(height / width) * 180 / 3.14' Else If width = 0 Then tmpAng = 90 If height = 0 Then tmpAng = 0 End If ' 4 четверть If p2(1) < 0 And p2(0) >= 0 Then tmpAng = 360 - tmpAng ' 3 четверть If p2(1) < 0 And p2(0) < 0 Then tmpAng = 270 - tmpAng ' 2 четверть If p2(1) >= 0 And p2(0) < 0 Then tmpAng = 180 - tmpAng GetAngle = tmpAng End Function
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Угол между прямой и плоскостью
Форум работает на PunBB, при поддержке Informer Technologies, Inc