首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在pythonocc-core中获得一个点和一个形状之间的距离?

如何在pythonocc-core中获得一个点和一个形状之间的距离?
EN

Stack Overflow用户
提问于 2021-06-23 09:29:38
回答 1查看 88关注 0票数 0

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

另外,下面是示例srcipts:core_geometry_minimal_distance (上面的代码)

但是,这对我来说很难有任何想法:得到一个点和一个形状之间的距离。

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

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

事实上,我正在尝试让一个Adaptively Sampled Distance Fields.In成为我的理解,在制作它的过程中,点和形状之间的距离是很有必要的。

另外,有没有人能告诉我如何制作Adaptively Sampled Distance Fields

如果我解释不清楚或使用了错误的措辞,请告诉我,我会纠正它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-13 14:01:50

一个多星期过去了。

作者展示的示例如下:

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

只需使用BRepBuilderAPI_MakeVertex创建一个形状,这只是一个点,将示例的code.such中的框替换为:

代码语言:javascript
复制
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()

代码语言:javascript
复制
_point_pnt = gp_Pnt(x, y, z)

vtx = BRepBuilderAPI_MakeVertex(_point_pnt).Shape() # shape type
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68092461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档