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

如何在pythonocc-core中获取点和形状之间的距离?

如何解决如何在pythonocc-core中获取点和形状之间的距离?

搜索过类似的问题,With OpenCascade,how to do a collision detection of 2 shapes fast?

另外,这里是示例源代码core_geometry_minimal_distance(上面的代码

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

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

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

其实我是在做一个Adaptively Sampled distance Fields。按照我的理解,在做的过程中需要得到点和形状之间的距离。

另外,有人能告诉我如何制作 Adaptively Sampled distance Fields 的任何想法吗?

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

解决方法

一个多星期过去了。

作者展示的例子是:

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

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