三.jsJavaScript WebGL呈现器

基于web的交互式查看器,使用三.jsJavaScript库由维护https://threejs.org。

通过添加关键字参数来调用查看器 viewer='threejs' 命令 show() 或者任何三维图形。场景将在用户的web浏览器中渲染和显示。交互性包括

  • 用鼠标滚轮放大或缩小或捏在触摸板上

  • 通过单击并拖动鼠标或在触摸板上滑动来旋转

  • 用鼠标右键单击并拖动或在触摸板上用三个手指滑动来进行平移

生成的HTML文件包含除了JavaScript库之外的场景的所有数据,并且可以保存到磁盘上,以便共享或嵌入到web页面中。选择权 online 可以设置为 true 在联机内容传递网络中提供指向所需文件的链接。或者,可以从三.jsGitHub存储库,并直接从web服务器链接。

查看器当前支持的选项:

  • aspect_ratio --(默认值: [1,1,1] )三个数值的列表或元组; z -宽高时自动减小,但可以覆盖

  • axes --(默认值:False)确定是否绘制坐标轴的布尔值

  • axes_labels --(默认值: [“x”、“y”、“z”] )三个字符串的列表或元组;设置为False可删除所有标签

  • color --(默认值:“蓝色”)三维对象的颜色

  • decimals --(默认值:2)整数决定标签中显示的小数位数

  • frame --(默认值:True)确定是否绘制帧的布尔值

  • online --(默认值:False)布尔值,用于确定本地标准包文件是否被指向联机内容传递网络的链接替换

  • opacity --(默认值:1)直线和曲面透明度的数值

  • projection --(默认值:“perspective”)要使用的摄影机投影类型;“perspective”或“orthographic”

  • radius --(默认值:无)线半径的数值;用于渲染比可用线粗的线 thickness 或者在Windows平台上 thickness 被忽略

  • render_order --(默认值:0)透明曲面渲染顺序的数值;对象从最低值到最高值进行渲染,以确保值较低的对象完全渲染

  • single_side --(默认值:False)确定是否渲染曲面材质的两面的布尔值;设置为True可减少闭合透明曲面的渲染瑕疵

  • thickness --(默认值:1)线条粗细的数值

单击查看器右下角的信息图标将打开可用操作的菜单。其中包括将三维场景保存为静态PNG图像或完整的HTML源代码。

作者:

  • Paul Masson(2016):初始版本

示例:

三个不同颜色和不透明度的球体:

sage: p1 = sphere(color='red', opacity='.5')
sage: p2 = sphere((-1,-1,1), color='cyan', opacity='.3')
sage: p3 = sphere((1,-1,-1), color='yellow', opacity='.7')
sage: show(p1 + p2 + p3, viewer='threejs')

参数螺旋:

sage: parametric_plot3d([cos(x),sin(x),x/10], (x,0,4*pi), color='red', viewer='threejs')
Graphics3d Object