panda3d有一个已知平面的4个点先判断这个平面的朝向然后根据朝向算出这个平面往朝向的方向拉伸1格往朝向的反方向拉伸1格组成一个长方体计算出长方体的8个顶点坐标完整代码
from panda3d.core import Point3
# 已知平面的4个点
p1 = Point3(0, 0, 0)
p2 = Point3(0, 1, 0)
p3 = Point3(1, 0, 0)
p4 = Point3(1, 1, 0)
# 判断平面朝向,计算法向量
v1 = p2 - p1
v2 = p3 - p1
normal = v1.cross(v2)
if normal.z > 0:
# 平面向上
height_dir = Point3(0, 0, 1)
else:
# 平面向下
height_dir = Point3(0, 0, -1)
# 计算长方体顶点
p5 = p1 + height_dir + v1
p6 = p2 + height_dir - v1
p7 = p3 + height_dir + v2
p8 = p4 + height_dir - v2
# 输出结果
print(p1, p2, p3, p4, p5, p6, p7, p8)
注意:以上代码仅考虑了平面为xy平面的情况,如果平面不在xy平面上,需要进行坐标变换
原文地址: https://www.cveoy.top/t/topic/g92f 著作权归作者所有。请勿转载和采集!