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

How find angle between two different pitch roof

提问人:Veeresh Huvinahalli 提问时间:10/17/2023 更新时间:10/17/2023 访问量:66

问:

我试图找到具有不同间距的相邻屋顶线之间的公共线角,如下图所示enter image description here

请让我知道如何确定角度。

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

数学 几何计算 几何 Revit-API

评论

0赞 John Alexiou 10/17/2023
请注意,这些不是实际角度,而是投影角度。我的意思是,它是投影折痕线与水平面之间的角度。
0赞 Kromster 10/17/2023
似乎不像是编程问题.我只会使用 Blender 或类似的东西

答:

1赞 John Alexiou 10/17/2023 #1

你要寻找的是一侧和折痕线的投影之间形成的角度ψ

fig1

请注意,另一个角度仅为 90° - ψ

3D 中的折痕线有一个方向向量 e,其中包含三个分量,其中 z 分量被忽略以获得(e_x,e_y,e_z)

tan(ψ) = e_y / e_x

但是我们如何获得这些方向组件呢?

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

fig2

第一条车顶线是绕 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°

上面有一个捷径。

ψ = atan(p_2/p_1) = atan(8/14) = 29.7449°

其中 和 是两个音高值。p_1 = 14/12p_2 = 9/12

0赞 Jeremy Tammik 10/17/2023 #2

我喜欢约翰的回答。对于较短的版本:两个屋顶零件定义两个平面。计算两个平面之间的交点线,并确定其从水平方向向上的角度,即在由 Z 方向和交点线本身定义的平面内。我想这也是Joh回答的要点。而且,我完全同意这个问题与编程无关。