使用 Panda3D 的简单平面相交

在搞砸Panda3D以查看我是否可以使用它来解决一些简单的几何问题时,我已经完成了这个小测试:


def def_planes_intersect():

    """Intersects the plane defined by the xy and xz axis'."""

    xy = Plane()

    xz = Plane((LPoint3f(1, 0, 1), LPoint3f(2, 0, 1), LPoint3f(1, 0, 2)))

    if xy.intersectsPlane((0, 10, 0), (1, 0, 0), xz) is True:

        print("works")

    else:

        print("doesn't")

它按预期工作,但我不明白的是我如何采用定义交集的LPoint3f和LVector3f。


在Panda3D文档中,它说:


相交平面(来自: LPoint3f, delta: LVector3f, 其他: LPlanef) → bool


如果两个平面相交,则返回 true;如果它们不相交,则返回 false。如果它们相交,则 from 和 delta 将使用相交线的参数表示进行填充:也就是说,from 是该线上的一个点,delta 是显示直线方向的向量。


它们是什么意思 from 和 delta 被填充?


幕布斯7119047
浏览 109回答 1
1回答

白衣非少年

因此,在编写我的问题时,我意识到我必须初始化LPoint3f和LVector3f的实例,并且该方法将用相关数据填充它们。我决定发布这个,因为可能有人会像我一样迷路from panda3d.core import LPoint3f, Plane, LVector3fdef def_planes_intersect():    """Intersects the plane defined by the xy and xz axis'."""    xy = Plane()    xz = Plane((LPoint3f(1, 0, 1), LPoint3f(2, 0, 1), LPoint3f(1, 0, 2)))    a = LPoint3f()    av = LVector3f()    if xy.intersectsPlane(a, av, xz) is True:        print("works")        print(f"{a}\n{av}")    else:        print("doesn't")这打印了以下明显的结果:LPoint3f(0, 0, 0) LVector3f(1, 0, 0)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python