Mathematica 绘图非常方便,而且也很漂亮。
如果再添上这个“技能”——POV-Ray,就可以方便地绘制出真实世界中的三维物体了。
1、关于 POV-Ray
POV-Ray,全名是 Persistence of Vision Raytracer,是一个使用光线跟踪绘制三维图像的开放源代码自由软件。很多漂亮的图片就是由 POV-Ray 来制作的。有兴趣或有需要的朋友,可以学一下其语法。
从官网下载对应的安装包,直接安装即可。
2、关于 POVRayRender For Mathematica
2.1、介绍
POVRayRender For Mathematica 是 GitHub 上的一个开源项目,它是 Mathematica 的一个扩展包。
2.2、功能
- 可渲染大多数由 Mathematica 绘制的 Graphics3D 对象
2.3、安装
- 下载POVRayRender包,点击这里
- 解压POVRayRender包到指定路径:
Mac 解压到$UserBaseDirectory
Windows 解压到FileNameJoin[{$InstallationDirectory, "AddOns/Packages"}]
- 设置 POV-Ray 的安装路径,例如:
(*配置POVRayRender路径,只运行一次即可*) (*注意:路径要改成自己电脑上POVRayRender的实际安装路径*) ConfigurePOVRayRender["POVRayPath"->"C:\\Program Files\\POV-Ray\\v3.7\\bin\\pvengine64.exe"]
2.4、使用
直接渲染
(*加载POVRayRender包*) Needs["POVRayRender`"] (*绘制要渲染的原图*) p = SphericalPlot3D[ 1 + 2 Cos[2 \[Theta]], {\[Theta], 0, Pi}, {\[Phi], 0, 2 Pi}, ColorFunction -> Function[{x, y, z, \[Theta], \[Phi], r}, Hue[r]], Mesh -> None, Axes -> None, PlotPoints -> 100] (*调用POV-Ray渲染原图,并导出到D盘根目录*) (*此时会弹出渲染对话框,等渲染结束后关闭即可*) POVRayRender[p, "OutputPath" -> "D:/pov.png"]
生成脚本
Needs["POVRayRender`"](*加载包*) (*绘制原图*) p = SphericalPlot3D[ Evaluate@Abs@SphericalHarmonicY[5, 2, \[Theta], \[Phi]], {\[Theta], 0, \[Pi]}, {\[Phi], 0, 2 \[Pi]}, Mesh -> None, ColorFunctionScaling -> False, PlotPoints -> 100]; (*生成绘图脚本*) povStr = ToPOVRayScene[p]; (*背景平面*) planeStr = " plane { z,-2 texture{ pigment{ checker rgb<1,1,1> rgb<0,0,0>} scale 0.25 } } \n "; (*玻璃纹理*) glassTextureStr = " pigment { rgbf <0.5,0.9,1,0.95> } finish { phong 0.9 phong_size 40 // A highlight reflection 0.2 // Glass reflects a bit } interior { ior 1.5} // Glass refraction \n "; (*修改绘图脚本*) povStr2 = StringInsert[ StringInsert[povStr, planeStr, StringPosition[povStr, "mesh2"][[1, 1]] - 1], glassTextureStr, StringPosition[povStr, "}"][[-2, 1]] + StringLength[planeStr] + 1]; (*绘图脚本存储地址*) scencePath = FileNameJoin[{$TemporaryDirectory, "glassWavefunction.pov"}]; (*导出绘图脚本*) Export[scencePath, povStr2, "String"]; (*运行刚刚生成的脚本*) Run["\"" <> POVRayRender`Private`$POVRayPath <> "\" " <> scencePath <> " +W800 +H600 -J +A0.001"]; (*导入渲染后的图片*) Import[FileNameJoin[{$TemporaryDirectory, "glassWavefunction.png"}]]
2.5、更多的例子
3、问题
扩展包的帮助文件夹为:”./POVRayRender/Documentation/”
问题:在 Windows(10)上,使用 Mathematica 11.1.1,可以查到相关帮助,但无法打开详情页面,如下图所示。参见:https://github.com/xslittlegrass/POVRayRender-For-Mathematica/pull/1
近期评论