0

我搜索了类似的问题,使用 OpenCascade,如何快速对 2 个形状进行碰撞检测?.

此外,这里是示例 srcipts:core_geometry_minimal_distance(上面的代码)

但是,我很难理解:获取点和形状之间的距离。

这里的剂量有一个简单的方法来通过pythonocc获得点和形状之间的距离吗?

如果没有,任何人都可以告诉任何关于获得距离的想法吗?

实际上,我正在尝试制作一个Adaptively Sampled Distance Fields。在我的理解中,在制作它时需要获得点和形状之间的距离。

另外,有人能告诉我如何制作一个Adaptively Sampled Distance Fields吗?

如果我没有解释清楚或使用不正确的措辞,请告诉我,我会修复它。

4

1 回答 1

0

一个多星期过去了。

作者展示的示例是:

https://github.com/tpaviot/pythonocc-demos/blob/master/examples/core_geometry_minimal_distance.py

只需用于BRepBuilderAPI_MakeVertex制作一个形状,它只是替换示例代码中的框的一个点。例如:


from OCC.Core.BRepExtrema import BRepExtrema_DistShapeShape
from OCC.Core.BRepPrimAPI import BRepPrimAPI_MakeBox
from OCC.Display.SimpleGui import init_display
from OCC.Core.gp import gp_Pnt, gp_Ax2, gp_Circ

from OCC.Extend.ShapeFactory import make_edge, make_vertex

def compute_minimal_distance_between_cubes(b1,b2):
    display.DisplayShape([b1, b2])

    dss = BRepExtrema_DistShapeShape()
    dss.LoadS1(b1)
    dss.LoadS2(b2)
    dss.Perform()

    assert dss.IsDone()

    return dss.Value()


_point_pnt = gp_Pnt(x, y, z)

vtx = BRepBuilderAPI_MakeVertex(_point_pnt).Shape() # shape type

于 2021-07-13T06:01:49.583 回答