微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

给定一个顶点数组和一个索引数组,如何计算半边线?

如何解决给定一个顶点数组和一个索引数组,如何计算半边线?

如果我具有以下条件:

  • 顶点数组:包含具有x,y,z值的网格的顶点。
  • 索引数组:包含将顶点链接在一起的索引

如何计算有向半边?

解决方法

要构建半边数据结构,我知道的最简单的方法是使用地图。

每个顶点id是其在数组中的索引,每个半边的id是组成该边的经点对的顶点。

我假设您只处理三角形网格,可以将其概括为多边形面,但出于解释的原因,它使其更简单。

  • 对索引数组进行3乘3迭代(3个索引组成一个面。)
  • 假设i,j,k是您刚刚获取的3个索引。那么您的3个半边是(i,j); (j,k); (k,i)。
  • 检查地图,如果地图中已经有一个半边的排列(例如k,j),则为该对边。否则我们找不到边缘。
  • 如果该对存在,则在第一个边缘之外分配新发现的边缘。
  • 否则,分配2个插槽并将新边存储在第一个位置。 (当您更改查找对时,它将分配在另一个插槽上。)

如果您需要实现参考: https://gitlab.com/Makogan/vkengine/-/blob/master/Src/Engine/MasterEngine/Geometry/HMesh.hpp

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。