为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Panda3D 的简单平面相交

使用 Panda3D 的简单平面相交

幕布斯7119047 2022-08-11 17:07:11
在搞砸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 被填充?
查看完整描述

1 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

因此,在编写我的问题时,我意识到我必须初始化LPoint3f和LVector3f的实例,并且该方法将用相关数据填充它们。我决定发布这个,因为可能有人会像我一样迷路


from panda3d.core import LPoint3f, Plane, LVector3f



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)))

    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)


查看完整回答
反对 回复 2022-08-11
  • 1 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信