编程语言之美

绘制图案方法

1、所见即所得的绘制方法,缺点:不灵活、不易修改,优点:直观、简单
2、使用控制结构绘制图形,在知道需要输出的规格后,按行打印输出
简单对比

爱心

说明:用的是Visual Studio 2015开发环境

普通爱心


带花纹的爱心图案


跳动的爱心



跳动的爱心动画需要运行程序后才可以看到

打印楼梯,同时在楼梯上方打印两个笑脸


五角星


棋盘


递归出来的美丽分形世界

世界上任何美丽的事物都可以用分形来展示出来

谢宾斯基三角

毕达哥拉斯树

科赫曲线

1次迭代

2次迭代:

而我们可以改变“+”“-”所旋转角度,从而得到自由旋转的曲线

还可以树杈的递归,三叉递归出一棵枝叶茂密的大树

一些非常好看分形壁纸,有关的算法就不清楚了







分形

重点来了:Tweetable Mathematical Art

Tweetable Mathematical Art

具体地说,参赛者需要用 C++ 语言编写 RD 、 GR 、 BL 三个函数,每个函数都不能超过 140 个字符。每个函数都会接到 i 和 j 两个整型参数(0 ≤ i, j ≤ 1023),然后需要返回一个 0 到 255 之间的整数,表示位于 (i, j) 的像素点的颜色值。举个例子,如果 RD(0, 0) 和 GR(0, 0) 返回的都是 0 ,但 BL(0, 0) 返回的是 255 ,那么图像的最左上角那个像素就是蓝色。参赛者编写的代码会被插进下面这段程序当中(我做了一些细微的改动),最终会生成一个大小为 1024×1024 的图片














控制旋转角

肥皂泡纹理


将图片转为ASCII字符画

基本思想就是用不同“亮度”的字符(每个字符有自己对应的视觉亮度)替换图片中对应亮度的那些部分,最后形成和原图亮度分布差不多的“看起来很像”的字符画
╭╮       ╭╮  
 ││       ││  
╭┴┴———————┴┴╮
│           │   
│           │   
│ ●       ●  │
│○  ╰┬┬┬╯  ○ │
│    ╰—╯    │ 
╰——┬O———O┬——╯
   ╭╮    ╭╮    
   ╰┴————┴╯



green!!!

为什么要用java或者cpp画