当前位置: 首页 > news >正文

南通优普营销网站建设网站建设和技术服务合同范本

南通优普营销网站建设,网站建设和技术服务合同范本,展示产品的网站 个人备案还是企业,如何做网络集资网站文章目录 4 Plotter类的方法4.1 访问Plotter信息4.1.1 实例信息4.1.2 演员对象列表 4.2 渲染器操作4.2.1 选择渲染器4.2.2 更新渲染场景 4.3 控制渲染效果4.3.1 渲染窗格的背景色4.3.2 深度剥离效果4.3.3 隐藏线框的线条4.3.4 改为平行投影模式4.3.5 添加阴影4.3.6 环境光遮蔽4…

文章目录

  • 4 Plotter类的方法
    • 4.1 访问Plotter信息
      • 4.1.1 实例信息
      • 4.1.2 演员对象列表
    • 4.2 渲染器操作
      • 4.2.1 选择渲染器
      • 4.2.2 更新渲染场景
    • 4.3 控制渲染效果
      • 4.3.1 渲染窗格的背景色
      • 4.3.2 深度剥离效果
      • 4.3.3 隐藏线框的线条
      • 4.3.4 改为平行投影模式
      • 4.3.5 添加阴影
      • 4.3.6 环境光遮蔽
      • 4.3.7 添加景深


vedo是Python实现的一个用于辅助科学研究的3D可视化库。
vedo的plotter模块是管理对象和控制3D渲染的模块。

Plotter实例可以用于显示3D图形对象、控制渲染器行为、操控相机、创建事件以及导出3D数据。几乎所有关于3D图形的操作,都是在Plotter渲染的窗口进行的。

按照功能对Plotter的方法进行分组,以下是操作渲染器的方法。

参考:vedo官方文档


4 Plotter类的方法

4.1 访问Plotter信息

4.1.1 实例信息

plt.print()
打印当前Plotter实例的信息。

plt = vedo.Plotter()
plt.print()

结果如下:

vedo.plotter.Plotter at (0x22f4b4c16f0)                                    
window title  : vedo
window size   : (960, 960), full_screen=(1707, 1067)
activ renderer: nr.0 (out of 1 renderers)
n. of objects : 0
axes style    : [None]

4.1.2 演员对象列表

plt.actors
返回actors列表。全部被展示的对象中拥有actor属性的对象的actor组成这个列表。


4.2 渲染器操作

4.2.1 选择渲染器

plt.at(nren, yren=None)
使当前渲染器变为编号指定的渲染器,返回绘制器本身。
也可以通过[nx, ny]格式选择第几行第几列的渲染器。

vedo模块的类的方法,被调用时大部分会返回实例本身,所以可以很方便地在同一行连用多个方法进行操作。在vedo的官方示例中经常这么使用。

s = vedo.Sphere(r=0.7)
c = vedo.Cube()plt = vedo.Plotter(N=2)
# 在两个窗格分别展示球体和立方体
plt.at(0).add(s)
plt.at(1).add(c)
plt.show(interactive=True)

at

4.2.2 更新渲染场景

plt.render(resetcam=False)
已有窗口展示的情况下,改变场景中的元素后,需要手动渲染场景,更新变化。
一般在循环或回调函数中使用。

plt = vedo.Plotter()cs = ["green", "red", "blue"]
# 窗口展示(未定义交互事件,因此不需要交互)
plt.show(interactive=False)
for i in range(10):i = i % 3# 改变背景颜色plt.background(c1=cs[i])# 渲染plt.render()time.sleep(1)

每秒变一次背景色:
变背景色


4.3 控制渲染效果

4.3.1 渲染窗格的背景色

plt.background()
为指定渲染器设置背景颜色。参数如下:

  • c1=None,主要背景色;
  • c2=None,窗口上面部分的背景色,会和c1设置的颜色形成渐变。
  • at=None,渲染器的索引。
  • mode=0,背景渐变的方式(需要vtk版本在9.3或以上)。必须c1和c2都填了才可用。
    0为垂直从下到上渐变,
    1为水平从左到右渐变,
    2为从中央向四周辐射渐变,
    3为从四周向中央辐射渐变。

背景色设置:

plt = vedo.Plotter(N=2)
# 设置背景色
plt.background("green", at=0)
plt.background("green", "red", at=1)
# 展示
plt.show(vedo.Text2D("c1=green\nc2=None", s=3), at=0)
plt.show(vedo.Text2D("c1=green\nc2=red", s=3), at=1)
plt.show(interactive=True)

background设置
4种渐变方式

plt = vedo.Plotter(shape=(1, 4))
plt.background("green", "red", at=0, mode=1)
plt.background("green", "red", at=1, mode=0)
plt.background("green", "red", at=2, mode=2)
plt.background("green", "red", at=3, mode=3)
plt.show(interactive=True)

background mode

4.3.2 深度剥离效果

plt.use_depth_peeling(at=None, value=True)
是否在指定的渲染器上使用深度剥离算法。

深度剥离是一种半透明渲染算法。进行n次绘制,每次绘制离相机的第n近的层,最后按顺序把剥离出的层按透明度混合到屏幕缓冲中。

需要在第一次渲染之前调用。

# 有一部分重叠在一起的两个图形
s = vedo.Sphere(pos=(0, 0, 0), r=0.7, alpha=0.7)
c = vedo.Cube(pos=(0, 0, 1), alpha=0.7)
plt = vedo.Plotter(N=2)
# 使用深度剥离和不使用的效果
plt.at(0).use_depth_peeling(value=True).add(s, c)
plt.at(1).use_depth_peeling(value=False).add(s, c)
plt.show(interactive=True)

可以看到,使用深度剥离算法可以正确渲染半透明物体的远近关系。
深度剥离算法

4.3.3 隐藏线框的线条

plt.render_hidden_lines(value=True)
wireframe模式下,移除背后的线条。

s = vedo.Sphere(pos=(0, 0, 0), r=0.7).wireframe()
plt = vedo.Plotter(N=2)
plt.at(0).add(s).render_hidden_lines(True)
plt.at(1).add(s).render_hidden_lines(False)
plt.show(interactive=True)

隐藏背后的线条

4.3.4 改为平行投影模式

plt.parallel_projection(value=True, at=None)
对指定的渲染器使用平行投影。
输入value=-1可以切换该选项的开关。

# 创建两个有距离的立方体
c1 = vedo.Cube(pos=(3, 3, 3))
c2 = vedo.Cube(pos=(0, 0, 0))
plt = vedo.Plotter(N=2, sharecam=False, resetcam=True)
# 启用平行投影
plt.at(0).add(c1, c2).parallel_projection(value=True)
# 不启用平行投影
plt.at(1).add(c1, c2).parallel_projection(value=False)
plt.show(interactive=True)

在交互页面拖动,使两个立方体靠近,可以发现:
不启用平行投影,3D图像会有近大远小的效果;平行投影是以平行的视线看向对象,会移除任何透视效果。
平行投影和透视投影

4.3.5 添加阴影

plt.add_shadows()
为当前渲染器添加阴影。需要与光源和放置阴影的物体配合。

s = vedo.Sphere(r=0.7)
# 简易光源
lit = vedo.addons.Light((-3, 0, 0))
# 创建墙面
wall = vedo.Box((3, 0, 0), length=0.1, width=10, height=10)
plt = vedo.Plotter(N=2)
plt.at(0).add(s, lit, wall)
plt.at(1).add(s, lit, wall).add_shadows()
plt.show(interactive=True)

阴影效果

4.3.6 环境光遮蔽

plt.add_ambient_occlusion()
屏幕空间环境光遮蔽。基于屏幕空间,像素着色器都会对所有像素周围的深度值采样,并计算所有采样点的遮蔽率。
参数及说明如下:

  • radius,计算遮蔽率的影响半径。
  • bias=0.01,法线的偏差。
  • blur=True,向采样位置添加模糊效果。
  • samples=100,采样数。
# 两个相连的球体,连接处光线遮蔽效果更明显
s1 = vedo.Sphere(pos=(0, 0.6, 0), r=0.7)
s2 = vedo.Sphere(pos=(0, -0.6, 0), r=0.7)
plt = vedo.Plotter()
plt.add(s1, s2)
plt.add_ambient_occlusion(2)
plt.show(interactive=True)

环境光遮蔽

4.3.7 添加景深

plt.add_depth_of_field(autofocus=True)
在场景中添加景深效果。

plt = vedo.Plotter(N=2)
plt.at(0).add(s1, s2).add_depth_of_field()
plt.at(1).add(s1, s2)
plt.show(interactive=True)

景深效果类似相机对焦的效果,焦点图像清晰,其余图像被模糊处理。
景深效果


以整理了绘制器类Plotter中渲染操作相关的方法。

更多关于数据可视化的内容参考:Python数据可视化笔记

http://www.yayakq.cn/news/614442/

相关文章:

  • 运营服务商官方网站网站虚拟空间更新缓存
  • 深圳网站制作联系兴田德润wordpress外链图片
  • 网站根目录怎么找销售公司简介模板
  • asp.net网站搬迁到移动终端wordpress添加页脚社交
  • 网站如何建立数据库图片网站收录
  • 想要建设一个网站都需要注意什么公司网站需要备案吗
  • 行业公司网站建设出口网站怎么做
  • 头条搜索站长平台那些网站可以做公司的推广
  • 智慧团建网站入口pc端蚌埠城乡建设 局网站
  • 建筑公司网站广告宣传语设计一个网站开发方案
  • .net网站开发工具介绍企业网站托管
  • 网站建设皖icp网站常见问题
  • 公司网站备案材料做网站工作怀孕
  • 武威市市建设局网站建筑业管理公司网站建设需要要求什么
  • 专业服务网站开发企业响应式网站建设
  • 杭州 做网站百度网站排名
  • 网站轮播效果做论坛网站时应该注意什么
  • 网站设计 趋势wordpress注册不跳转
  • 医院网站建设规划wordpress大发
  • 网站制作关键技术电商网站开发需要什么语言
  • 如何做一名优秀的网站管理者个股期权网站开发
  • 专业简历制作网站推荐小程序搭建需要什么
  • 网站说明页命名淘宝上做网站行吗
  • 上海知名网站建设公司新公司名字注册查询
  • 网站的更新与维护网站建设维护公司
  • 朝阳网站建设怎么在百度创建网站
  • 私人网站建设可以做企业网站
  • 福州网站建设方案书网站建设业务员的话术
  • php网站迁移东莞网红打卡旅游景点
  • 做两个单页面网站大概多少钱云电脑平台哪个最好