使用Panda3D的简单平面相交



在摆弄Panda3D以查看是否可以使用它来解决一些简单的几何问题时,我完成了以下littel测试:

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文档中,它说:

intersectsPlane(来自:LPoint3f,delta:LVector3f,其他:LPlanef(→bool

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

它们的是什么意思?中填充了from和delta?

因此,在编写问题时,我意识到我必须初始化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)

相关内容

  • 没有找到相关文章

最新更新