使用GnUplot 5.4进行体素绘制

2020-08-19 06:25:37

LWN订户已向您提供以下仅限订阅的内容。数以千计的用户依赖LWN获取来自Linux和自由软件社区的最好消息。如果您喜欢这篇文章,请考虑接受右边的试用报价。感谢您访问LWN.net!

免费试用LWN 1个月:无需付款或信用卡。现在激活您的试用订阅,看看为什么成千上万的读者订阅LWN.net。

在本文中,我们将更深入地研究其中的一项新特性:体素图,这是我们对gnplot(5.4)版本的报道的后续内容。我们在那篇文章中只简要介绍了这些绘图,但它们是本版本自由软件绘图工具中最引人注目的新增功能。体素绘图提供了多种可视化3D数据的方式,因此值得更详细地研究这种新的绘图类型。之前,我们介绍了电偶极子的简单物理系统,在z轴上放置两个相等但相反的电荷,分别为0.25和0.75。坚持这个问题,探索不同的方法来可视化由电荷产生的3D势场应该是有指导意义的。

在深入到适当的体素绘制之前,我们需要了解熟悉的slot命令具有新的3D功能。Slot过去代表的是表面图,但现在可以表示得更多了。例如,我们可以使用它来绘制两个电荷的位置,如下所示:

Set xrange[0:1];set yrange[0:1];set zrange[0:1]set view 65,40将xyplan设置为-0.1设置边框4095 unset key$charles<;<;EOD 0 0 0.75 1 0 0 0.25-1 EOD slot$Charles Using 1:2:3:4 with Points\pointtype 7 pointsize 5线条调色板。

脚本的前六行设置了显示边界框的范围、视角、底面的位置,并将边框设置为包围方框的所有边。下一行以$Charge开始,定义由以下两行组成的";数据块";。每条线都包含x,y,z,坐标,第四列是电荷的大小。最后的命令分为两行,使用使用1:2:3部分提取的位置绘制两个电荷,并使用:4提取第四列的电荷值。通过将值映射到调色板上,该值用于决定绘制点应该是哪种颜色,这就是";line Color Palette";告诉gnplot做的。其他子句将pointsize设置为5个字符宽度,将pointtype设置为圆形(7)。

接下来,我们将绘制这两个电荷周围势场的三维结构图。为此,我们转向体素网格。正如2D图像(如照片)是矩形像素阵列一样,3D中的数据可以表示为3D矩形体素阵列