Panda3D: 使用 Python 绘制长方体和点
以下是用 Panda3D 画出长方体和点的代码:
from direct.showbase.ShowBase import ShowBase
from panda3d.core import Point3, Geom, GeomVertexData, GeomVertexFormat, GeomVertexWriter, GeomTriangles, GeomNode
class MyApp(ShowBase):
def __init__(self):
ShowBase.__init__(self)
# 创建长方体的顶点列表
box_points = [
Point3(-1, -1, -1),
Point3(-1, -1, 1),
Point3(-1, 1, -1),
Point3(-1, 1, 1),
Point3(1, -1, -1),
Point3(1, -1, 1),
Point3(1, 1, -1),
Point3(1, 1, 1)
]
# 创建长方体的索引列表
box_indices = [
0, 1, 2, 3, 6, 7, 4, 5, # 上下面
0, 2, 4, 6, 1, 3, 5, 7, # 左右面
0, 4, 1, 5, 2, 6, 3, 7 # 前后面
]
# 创建长方体的顶点数据和几何体
format = GeomVertexFormat.getV3()
vdata = GeomVertexData('box', format, Geom.UHStatic)
vwriter = GeomVertexWriter(vdata, 'vertex')
for p in box_points:
vwriter.addData3f(p)
tris = GeomTriangles(Geom.UHStatic)
for i in box_indices:
tris.addVertex(i)
tris.closePrimitive()
geom = Geom(vdata)
geom.addPrimitive(tris)
node = GeomNode('box')
node.addGeom(geom)
# 创建长方体的节点path,并将其放置在场景中
box_np = self.render.attachNewNode(node)
box_np.setScale(2)
# 创建一个表示点的节点path,并将其放置在场景中
point_np = self.render.attachNewNode('point')
point_np.setPos(0, 0, 0)
point_np.setScale(0.1)
point_geom = self.loader.loadModel('models/misc/smiley')
point_geom.reparentTo(point_np)
app = MyApp()
app.run()
运行代码后,你会看到一个黑色的长方体和一个黄色的点。你可以使用鼠标左键拖动场景来旋转视角。
原文地址: https://www.cveoy.top/t/topic/ooEJ 著作权归作者所有。请勿转载和采集!