gpt4 book ai didi

偏移3D三角形网格边缘的算法

转载 作者:行者123 更新时间:2023-12-03 16:28:32 24 4
gpt4 key购买 nike

我有一个3D三角形网格,并且我正在寻找一种算法,可以沿三角形网格的表面向内偏移网格的所有无边界边缘的边界。

我已经看过Clipper中提到的An algorithm for inflating/deflating (offsetting, buffering) polygons,但是它不能真正处理3D,也不能保留三角形网格,而且我不确定是否要重新三角化生成的边界以匹配原始输入网格会更容易一个要解决的问题。

关于如何实现此目标的任何建议?

triangle mesh offset

最佳答案

基于边框边仅由一个三角形共享的假设:
你需要

  • 一个 map 边缘->三角形:e2t
  • 一个多 map 点->三角形:p2t
  • 跟踪已修改点的集合:pts

  • 那么这会做到的
    for all triangles do:
    for each edge do:
    normalize edge: e.p1 < e.p2
    if the egde is in e2t: put edge/dummy into e2t
    else: put the edge/triangle into e2t

    for each point do:
    put point/triangle into p2t

    prune all edge/dummy from e2t

    while e2t is not empty:
    remove first edge/triangle from e2t -> e,t
    calculate replacement points for t: e.p1,e.p2 -> q1,q2
    unless the point is in pts
    use p2t to update all triangles with e.p1->q1 and all with e.p2->q2:
    update e2t if the modified edge is in there
    add each modified point to pts
    要计算替换点,您必须找到不在同一平面上的共享三角形->这定义了移动点的方向。
    然后看起来像这样:
    enter image description here

    关于偏移3D三角形网格边缘的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32402655/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com