PyViz3D / 文档 / API 参考

API 参考

PyViz3D 完整 API 文档。所有参数均为可选,位置参数数组格式为 NumPy ndarray。

Visualizer 类

可视化主入口。所有方法均返回实例本身,支持链式调用。

class Visualizer(name="PyViz3D", server_port=8000, window_size=None)
参数类型说明
namestr浏览器窗口标题,默认为 "PyViz3D"
server_portint本地服务器端口,默认为 8000
window_sizetuple(width, height),设置画布像素尺寸

链式调用示例

v = viz.Visualizer() v.add_points("p1", pts1, col1) \ .add_boxes("b1", pos, sizes, col) \ .save("out")

add_points — 点云

add_points(name, positions, colors=None, normals=None, normal_scale=1.0, point_size=2.0, visible=True)
参数类型说明
namestr图层名称,用于控制面板标识
positionsnp.ndarray (N,3)N 个点的 xyz 坐标
colorsnp.ndarray (N,3)N 个点的 RGB 颜色,值范围 0~1
normalsnp.ndarray (N,3)可选,法向量用于 Phong 光照着色
normal_scalefloat法向量缩放,影响光照强度
point_sizefloat点的像素大小,默认为 2
visiblebool初始是否可见,默认为 True
如果未提供 colors,默认为全白 (1,1,1)。positions 和 colors 数组会被 PyViz3D 转换为二进制格式存储。

add_mesh — 多边形网格

add_mesh(name, vertices, faces, colors=None, visible=True)
参数类型说明
namestr图层名称
verticesnp.ndarray (V,3)V 个顶点的 xyz 坐标
facesnp.ndarray (F,3)F 个三角形的顶点索引(0-based)
colorsnp.ndarray (3,) 或 (V,3)RGB 颜色,单值则全局着色

add_boxes — 边界框

add_boxes(name, positions, sizes, colors=None, rotations=None, alpha=1.0, visible=True)
参数类型说明
positionsnp.ndarray (N,3)N 个框的中心点坐标
sizesnp.ndarray (N,3)N 个框的 (width, height, depth)
colorsnp.ndarray (N,3)N 个框的颜色
rotationsnp.ndarray (N,3)绕 (x,y,z) 轴旋转角度(度),默认不旋转
alphafloat透明度,0(完全透明)到 1(完全不透明)

add_arrows — 箭头

add_arrows(name, positions, vectors, colors=None, visible=True)
参数类型说明
positionsnp.ndarray (N,3)N 个箭头的起点坐标
vectorsnp.ndarray (N,3)N 个箭头的方向向量(决定方向和长度)
colorsnp.ndarray (N,3)N 个箭头的颜色

add_text — 标签

add_text(name, text, positions, colors=None, visible=True)
参数类型说明
textstr 或 list[str]标签文字,列表则每个位置对应一条
positionsnp.ndarray (N,3)N 个标签的 3D 坐标
colorsnp.ndarray (N,3)N 个标签的文字颜色

add_polygon — 多段线

add_polygon(name, vertices, colors=None, alpha=1.0, visible=True)
参数类型说明
verticesnp.ndarray (V,3)按顺序排列的顶点数组,自动连接相邻点
colorsnp.ndarray (3,)线条 RGB 颜色
alphafloat透明度(仅在闭合多边形时有填充效果)

add_superquadrics — 超二次曲面

add_superquadrics(name, positions, parameters, visible=True)
参数类型说明
positionsnp.ndarray (N,3)N 个形状的中心位置
parametersdict参数字典,见下方说明

parameters 字典支持的键:

类型说明
'epsilon'list[2]形状圆润度 [e1, e2],越小越方
'size'list[3]各轴缩放 [sx, sy, sz]
'color'list[3]RGB 颜色
'taper'list[2]锥化系数 [tx, ty],0~1
'bend'float弯曲系数
'wireframe'bool是否以线框模式渲染

add_motion_arrows — 运动箭头

add_motion_arrows(name, positions, vectors, colors=None, head_shaft_ratio=0.9, head_width_ratio=0.3, visible=True)

add_arrows 参数相同,但多了两个控制箭头头部比例的参数:

参数类型说明
head_shaft_ratiofloat箭头头部占整体长度的比例,默认 0.9
head_width_ratiofloat箭头头部宽度与总长度的比,默认 0.3

相机控制

set_camera(position, look_at, up=[0,0,1])
参数类型说明
positionlist[3]相机位置 [x, y, z]
look_atlist[3]相机目标点 [x, y, z]
uplist[3]世界空间中向上的方向向量
set_camera_animation(mode, radius=10, height=5, look_at=[0,0,0], frames=120, seconds=5)
参数类型说明
modestr"circle"(圆形轨道)或 "spline"(贝塞尔样条)
radiusfloat圆形轨道半径
heightfloat相机高度
framesint动画总帧数
secondsfloat动画时长(秒)

输出方法

save(path, open_browser=True, print_urls=True) # 保存到本地目录,启动本地服务器 publish(name=None) # 上传到 3d.pointcloudviz.top,返回分享 URL save_animation(path, width=1920, height=1080) # 导出图片序列(需先调用 set_camera_animation) save_blender(path, animation=False) # 导出 .blend 文件(需安装 Blender)