总结
在开发测地线相关内容的过程中,我遇到了一件趣事。我发现自己需要把一些柏拉图立体完全展开。既然要展开其中三个立体,我索性把所有柏拉图立体都展开了。
这一工具包代表了数学几何库
首先,原始的 maths_geodesic.scad 库在 'clean' 函数中存在一个小漏洞,导致其无法正确转换球面坐标。
还有几处补充说明:
DEGREES()函数——该函数已在其他库中存在,用于将角度值从弧度转换为度数。
RADIANS() - 已在其他库中存在,用于将度数转换为弧度
deg(deg,min,sec) - 创建一个存储度数、分和秒的数据结构。
deg_to_dec(d) - 将该度数数据结构转换为十进制形式
等更多球形和地理相关的元素开始出现时,它们肯定会派上用场的。
sphu_from_cart(c, rad=1) - 与sph_from_cart功能相同,但允许用户指定半径值。这在将坐标从笛卡尔坐标系转换时,若需要构建具有固定半径的物体时,会非常方便实用。
接下来是一些与多边形数学相关的知识。比如,计算内部角度之类的。其中最有趣的或许是计算柏拉图多面体的二面角。这在某些计算中会派上用场。
然而,最新加入的内容是文件 'platonic.scad' 中与柏拉图立体直接相关的系列元素。
首先,五种柏拉图立体由描述其几何结构/拓扑关系的函数来表示,这些函数的形式适合用polyhedron()模块进行渲染。
所以:
正四面体(半径=1)
八面体(半径=1)
六面体(半径=1)
十二面体(半径=1)
二十面体(半径=1)
您可以这样使用它:
display_polyhedron(icosahedron(20));
这样就能生成一个以[0,0,0]为中心、半径为20的二十面体了。
能够设置半径参数真是太方便了,这样你就能进行诸如嵌套操作,或者根据需要调整其尺寸。它们以原点为中心这一特点,使得将它们旋转至任意方向都变得相当容易。
这些STL文件仅展示了使用test_platonic.scad文件生成的一些随意渲染效果。进行截断和星状化处理相当简单。即使是制作空心造型,特别是使用双曲面时,操作起来也相当容易。
唯一没有提到的是如何利用内半径、外半径和中半径来正确对齐双曲线。不过,这能有多难呢?
无论如何,OpenScad现在已经拥有一套整洁的小型柏拉图立体模型供用户随意摆弄了。
更新时间:2011年1月19日
我添加了一些.stl文件,这些文件是各种立体图形的渲染图。六边形模型在OpenScad中确实存在问题。我会对其进行调试,等它能正常运行后再上传。这真是个奇怪的漏洞。
更新时间:2011年3月9日
用platonic_set.stl替换了platonics.stl文件。现在我得到的十二面体模型质量更好了。
操作指南
1) 下载各种文件。platonic.scad 依赖于 maths_geodesic.scad,因此你至少需要获取这两个文件。
2) 尝试修改 test_platonic.scad 文件,了解其中的设计原理和实现方法。
3)欢欣鼓舞吧!