如何找到两个不同坡度屋顶之间的角度

问题描述 投票:0回答:1

我正在尝试找到具有不同间距的相邻屋顶线之间的公共线角度,如下图所示

请告诉我如何确定角度。

我尝试了 arctan(8/12)= 33.69 度和 arctan(14/12)=49.3987 度,但找不到任何解决方案。

math geometry computational-geometry revit-api
1个回答
0
投票

您要寻找的是一侧与折痕线投影之间形成的角度$\psi$

请注意,另一个角度只是

90° - ψ

3D 中的折痕线具有方向向量

e
,具有三个分量
(e_x,e_y,e_z)
,其中 z 分量被忽略以获得

tan(ψ) = e_y / e_x

但是我们如何获得这些方向分量呢?

以 3D 方式查看问题,折痕线是两条屋顶线相交的地方

第一条屋顶线是绕 x 轴旋转,角度为

14/12
或角度

φ_x = atan(14/12) = 49.39870°

垂直于平面的方向是

      |  0        |   |  0     |
n_x = | -sin(φ_x) | = | -8/√85 |
      |  cos(φ_x) |   |  6/√85 |

类似地,第二条屋顶线是绕 y 轴旋转,角度为

8/12
,或角度

φ_y = atan(y/12) = 33.6901°

垂直于平面的方向是

      | -sin(φ_y) |   | -2/√13 |
n_y = |  0        | = |  0     |
      |  cos(φ_y) |   |  3/√13 |

从向量叉积中找到折痕线方向

                | e_x |   | 21/√1105 |
e = n_y × n_x = | e_y | = | 12/√1105 |
                | e_z |   | 14/√1105 |

所以屋顶线角度是

ψ = atan(e_x/e_y) = atan( 21/12 ) = 29.7449°
© www.soinside.com 2019 - 2024. All rights reserved.