今天跟大家伙儿唠唠我搞的这个“forest tree”项目,说白了,就是想在屏幕上画棵树,看着挺简单,但真动手做起来,还是踩了不少坑。
我寻思着这还不简单?用线条画个三角形当树冠,再画个长方形当树干,齐活!结果一跑起来,好家伙,丑到我自己都看不下去。树冠像个歪帽子,树干像根电线杆,毫无美感可言。
我就开始琢磨,真正的树是什么样的?树冠不是规规矩矩的三角形,而是有很多分支,错综复杂。树干也不是笔直的,而是有些弯曲,甚至还有树瘤。
- 1,我决定用递归来画树枝。
- 然后,每次递归都随机改变树枝的长度、角度和粗细。
- 3,这样画出来的树枝就显得自然多了。
树干部分,我也没再用简单的长方形,而是用贝塞尔曲线模拟树干的弯曲。还在树干上加了一些随机的凸起,模拟树瘤。
接下来就是颜色了。
光有形状还不行,颜色也很重要。我给树干和树枝都加上了渐变色,让它们看起来更有层次感。树叶部分,我用不同的绿色随机组合,模拟树叶的颜色变化。
为了让画面更生动,我还加了一些细节。比如,在树枝上画一些小鸟,在树下画一些草地和鲜花。还加了一个可以调节风力的功能,风力越大,树枝摇摆的幅度就越大。
做完这些,总算有点森林那味儿了。虽然还有很多可以改进的地方,比如,树的种类还不够丰富,树叶的细节还不够精细,等等。但我对这回的实践还是比较满意的。
这回搞“forest tree”项目,让我明白了,看似简单的东西,真要做还是需要花不少心思的。同时也让我体会到了编程的乐趣,把脑海中的想法变成现实,这种感觉真的很棒!
以后我会继续努力,做出更多有趣的东西。也希望我的分享能给大家带来一些启发。