很早之前做过一个灯笼的案例【3D指令-曲面】画个灯笼,灯笼的绘制是曲面、曲线的应用,在2022年元旦,我在灯笼上加上了元旦快乐四个字,今天就简单做个文本教程,说明下这个案例的制作。

  【基本思路】

  利用平面点阵、圆柱面点阵、球面点阵进行的文字表示的方法。

  第一步:做出平面上的点阵文字;

  第二步:做出圆柱面上的点阵文字;

  第三步:做出球面上的点阵文字。

  【操作步骤】

  1、利用表格,快速做出16*16*4个点

  在A1、A2、B1、B2中分别输入(0,15)、(0,14)、(1,15)、(1,14),创建四个点

  选中四个单元格,先向下拖动到B16

  选中A1-B16拖动到BL16

  2、参照文字的点阵图删除不需要的点

  我利用的是一个在线版的点阵字生成器,网址:https://tools.kooriookami.top/

  调整参数和想要的文本,导出文字的点阵图片

  参考点阵图片删除不需要的点

  (这里可以在17行加入数字,起到列数辅助功能)

  3、创建平面点阵的列表

  选取A1-BL16区域,右键创建-列表,创建l1列表

  利用复制自由对象指令创建一个自由对象的点列l2

  删除所有A1-BL16中的点、l1会自动被删除,仅保留l2。

  PS:

  这里创建l2的目的是不想要那么多的点的对象,复制好l2后就可以把A1-BL16中的对象全部删除,删除后l1同样也会被删除

  。

  4、将平面点阵变换为圆柱面点阵

  平面点阵变换圆柱面点阵这里采用的方式是平面点的坐标进行映射和旋转:将点的纵坐标-7映射为z坐标,x坐标变为0,y坐标变为20(此值为圆柱的半径),然后绕z轴旋转横坐标*2.5度(因为目前是4个字,横坐标最大值为64,旋转的度数最大控制在180度,所以选择乘以2.5 这个可以根据文字多少做调整)。

  指令:

  l1 = 映射(旋转((0, 20, y(S)-7), x(S) * 2.5°), S, l2)

  5、通过取交点的方式得到球面点阵

  利用二次方程做出球面或椭球面(灯笼需要用到椭球面)

  a:x2 + y2 + (3 / 2.2)2 z2 = 9

  利用映射射线与a的交点做出球面点阵

  l3=映射(交点(射线((0,0),S),a),S,l1)

  至此,该案例完成

  灯笼的制作,参考原来的文章加上需要的内容即可

  b = 曲线(3sin(α), 0, 2.2cos(α), α, 0 + π / 12, π – π / 12)

  l4 = 序列(旋转(b, i, z轴), i, 0°, 360°, 15°)

  c = 曲面(3sin(π/12) sin(α) , 3sin(π/12) cos(α), h, α, 0, 2π, h, 2.2cos(π / 12), 2.2cos(π / 12) + 0.5)

  d = 曲面(3sin(π / 12) sin(α), 3sin(π / 12) cos(α), h, α, 0, 2π, h, 2.2cos(π / 12)

  + 0.15

  , 2.2cos(π / 12)

  + 0.2

  )

  e = 曲面(3sin(π / 12) sin(α), 3sin(π / 12) cos(α), h, α, 0, 2π, h, 2.2cos(π / 12)

  + 0.3

  , 2.2cos(π / 12)

  + 0.35

  )

  f = 曲面(3sin(α) sin(π / 12), 3cos(α) sin(π / 12), h, α, 0, 2π, h, -2.2cos(π / 12) – 0.5, -2.2cos(π / 12))

  g = 曲面(3sin(π / 12) sin(α), 3sin(π / 12) cos(α), h, α, 0, 2π, h, -2.2cos(π / 12) – 0.2, -2.2cos(π / 12) – 0.15)

  h = 曲面(3sin(π / 12) sin(α), 3sin(π / 12) cos(α), h, α, 0, 2π, h, -2.2cos(π / 12) – 0.35, -2.2cos(π / 12) – 0.3)

  最后可以做一个l3的旋转副本,这样灯笼的两面都有文字了。

  l3′ = 旋转(l3, 180°)

  调整位置和大小,开启3D绘图区的自带旋转动画,即可录制下面的动图效果。

  

作者 adminp4mrw