立体汉字制作
geogebra吧
全部回复
仅看楼主
level 11
本贴没什么代码,与立体勾股注水制作类似,首先是在平面把汉字图形放进来,然后用点描边。以岁字为例:
把图片放进来,调整大小和位置,然后描点:
这里是从O_5开始,最后要回到它或者是和它相邻的点,中间有重复点(在重复路径上),遇到描重复点时,先在已有点附近描上点,然后在代数修改为此点等于已有的那个点。
l6 = {O_5, P_5, Q_5, R_5, S_5, T_5, U_5, V_5, W_5, Z_5, A_6, B_6, C_6, D_6, E_6, F_6, G_6, H_6, I_6, J_6, K_6, L_6, M_6, N_6, O_6, P_6, Q_6, R_6, S_6, T_6, U_6, V_6, W_6, Z_6, A_7, B_7, C_7, D_7, E_7, F_7, G_7, H_7, I_7, J_7, K_7, L_7, M_7, N_7, O_7, P_7, Q_7, R_7, S_7, T_7, U_7, V_7, W_7, Z_7}
这里列表放上来,是可以看看点的顺序,其中Q_7=D_7,P_7=C_7。其它汉字同样处理,这样可以让一个汉字用一个多边形解决。
当然,也可以把汉字折分成几个多边形,免的来回描点,如“祖”字:点、示旁、且,分别为多边形p1、p2、p3。
用多边形命令把这些点画成多边形:
p1 = 多边形(l1)
p2 = 多边形(l2)
p3 = 多边形(l3)
p4 = 多边形(l4)
p5 = 多边形(l5)
p6 = 多边形(l6)
l7 = {p1, p2, p3, p4, p5, p6}
l7' = 切变(l7, x轴, 0.5)
关闭p1--p6显示,打开l7'显示,做个投影,然后打开3D视图区
让平面汉字站起来:
p1' = 旋转(p1, π / 2, x轴)
p2' = 旋转(p2, π / 2, x轴)
p3' = 旋转(p3, π / 2, x轴)
p4' = 旋转(p4, π / 2, x轴)
p5' = 旋转(p5, π / 2, x轴)
p6' = 旋转(p6, π / 2, x轴)
再让汉字厚起来:
f = 棱柱(p1', 0.4)
e = 棱柱(p2', 0.4)
d = 棱柱(p3', 0.4)
c = 棱柱(p4', 0.4)、
b = 棱柱(p5', 0.4)
a = 棱柱(p6', 0.4)
2021年02月03日 04点02分 1
level 11
如果我们用等线体汉字,情况相对要简单些,如下边汉字:
你可以认为等线体就是传说中的黑体字,它其实是通过如下线条加粗的:
也就是说,我们只需要为每个笔划描出关键点就行了,不需要对笔划描边,如下:
每个笔划建一个列表,最好是边描边建,不然容易出错,然后接下来只是处理把折线加粗的问题了,当然最省事的是直接用线径工具,但在坐标缩放中不好使,因此我们做了个工具叫“粗折线”:
它的输入是点的列表,输出是折线多边形和折线本身,如:
我们有了上边汉字每个笔划点列表,又有了加粗折线工具,就可以处理等线汉字了:
技巧是每处理完一个汉字,用列表组合在一起,如下:
只是在处理成立体字时,因不能直接对列表使用棱柱命令,只有用序列命令来实现,如:
l2 = {q1, poly1, q2, q3, poly2, poly3, q4, q5} (为处理好的春字多边形笔划列表)
春 = 平移(l2, (0, 0)) (让它在二维平面中整体显示出来,便于调色等)
春1 = 旋转(春, π / 2, x轴)
春2 = 序列(棱柱(元素(春1, i), 0.1), i, 1, 长度(春1))
整体效果如下:
2021年02月07日 03点02分 2
level 11
当然,如果不需要在3D中做立体字,也不在乎是不是黑体字体,我们就完全可以直接用这些点画折线,不需要那个自定义工具,用线径加粗折线,操作前最好把所有折线组合成一个列表,如下效果:
它其实是幼园体,只是直接用系统工具改变线径是有限的,最大为13,字大的时候效果不明显,我们需要在代数区使用命令,如:设置线径(l8, 30) 就行了。
2021年02月07日 04点02分 3
1