要计算两个平面之间的二面角,需要四个点:两个位于交叉边缘,两个位于每个相应的平面上。可以找到完整的数学公式here。
现在我的问题涉及数据结构以及如何有效地计算六面体中的所有二面角。假设我有一个数据结构如下
vertices[8] // Contains all the vertices of the hexahedral
edges[12] = {{vertices[i], vertices[k]}, {vertices[i], vertices[j]}...} // Each cell contain an edge formed by the two vertices.
face[6] = { {vertices[i], vertices[j], vertices[k], vertices[l]}, {..} ...} // Each face contains the four vertices that form a face of the hexahedral.
假设这个六面体的所有面都是平面的(即面的所有四个顶点都是共面的),计算以这种方式定义的六面体的所有二面角的好策略是什么?
目前,我的伪代码看起来像
for all edges
loop through the face list to find all faces that contain the edges
for the face that both contain the vertices of the sharing edge, find the other points
then used the formulation proposed above.
看起来非常笨拙和缓慢。有更好的建议吗?
答案 0 :(得分:0)