程序员三大浪漫 (七夕程序员单身的原因)

七夕情人节来临之际,朋友圈早已被各种代购刷屏,“你啥都不送,让你女朋友七夕的时候在朋友圈炫耀什么?”、“扫一扫进七夕保命群,教你七夕买什么送女友才能保命”、“你男朋友是不是以为你缺氧,所以每个节日都送你空气”......

不得不承认他们一个个都是被代购事业耽误的网络段子手啊。

除了买买买送送送,男朋友就没有其他哄女朋友开心的办法了吗?

实在想不到的话,那就学学看优秀的程序员有多浪漫吧~

1、简单粗暴的1行Python代码(一行内输入)

print('\n'.join([''.join([('I LOVprint('\n'.join([''.join([('I LOVE U'[(x-y) % 8] if ( (x*0.05)**2 + (y*0.1)**2 -1)**3 - (x*0.05)**2 * (y*0.1)**3 <=0 else ' ') for x in range(-30,30)]) for y in range(15, -15, -1)]))

程序员的七夕生活,程序员特有的浪漫

2、照片墙

依赖:

pip install Image clize

使用:

python picture_wall.py --help
Usage:picture_wall.py[OPTONS][text...]

生成照片墙

Arguments:
text...          Text of picture wall,if not defined this will generege a rectangle picture wall

Options:
-s,--font-size=INT     font size of a clear value (default:20)
-e,--edge-len=INT      sub picture's egde length (default:50)
-w,--wall-width=INT    picture number of rectangle width (default:20)
-I,--wall-length=INT   picture number of rectangle length(defualt:10)
-d,--pic-dir=STR       picture's path (default:./img)
-o,--out-dir=STR       output dir(default:./out)
-p,--font-path=STR     font path (default:./demo.ttf)

Other actions:
-h,--help              Show the help

for example:

./picture_wall.py I Love U -s 30 -e 10 

程序员的七夕生活,程序员特有的浪漫

./picture_wall.py 我爱你 -s 30 -e 10

程序员的七夕生活,程序员特有的浪漫

如果指定为相册文件夹的话,将得到如下效果(文件夹下图片太多而且太大的话会比较慢):

程序员的七夕生活,程序员特有的浪漫

也可以选择尺寸的方式调整子图,例如:

python picture_wall.py 1314 -m size

程序员的七夕生活,程序员特有的浪漫

TODO

  • 子照片的处理方式有待提升,目前采用的只是根据字体像素透明度控制透明度,还可以抽象出来让用户选择控制方式~比如:
    • 根据字体像素透明度控制子图形状
    • 根据字体像素透明度控制子图颜色亮度
    • 或者直接采用圆形裁剪子图

3、爱心情书

依赖:

pip install jieba numpy pandas matplotlib wordcloud scipy wordcloud

使用:

python heart_cloud_word.py --help
Usage:./heart_cloud_word.py[OPTONS][par...]

生成文字云

Arguments:
  par...         

Options:
-t,--text-file=STR     text file that contain all you word(default:./data/love_letter.txt)
-s,--stop-file=STR    the stop word which can't be considered (defualt:./data/love_letter.txt)
-c,--color-img=STR     the color map img (default:./data/pink.jpg)
-m,--mask-file=STR     the mask img for the word
-o,--out-file=STR      outout file path which should with sufix of png/jpg... (default:./out/word_cloud.png)
-p,--font-path=STR     font path (default:./demo.ttf)

Other actions:
-h,--help              Show the help

for example:

./heart_cloud_word.py 

程序员的七夕生活,程序员特有的浪漫

4、Echarts--极坐标双数值轴

var data = [];

for (var i = 0; i <= 100; i++) {
    var theta = i / 100 * 360;
    var r = 5 * (1 + Math.sin(theta / 180 * Math.PI));
    data.push([r, theta]);
}

option = {
    title: {
        text: '极坐标双数值轴'
    },
    legend: {
        data: ['line']
    },
    polar: {},
    tooltip: {
        trigger: 'axis',
        axisPointer: {
            type: 'cross'
        }
    },
    angleAxis: {
        type: 'value',
        startAngle: 0
    },
    radiusAxis: {
    },
    series: [{
        coordinateSystem: 'polar',
        name: 'line',
        type: 'line',
        data: data
    }]
};

程序员的七夕生活,程序员特有的浪漫

5、Matlab画爱心

平面图

x=linspace(-2,2,1000);  
y1=sqrt(2*sqrt(x.^2)-x.^2);  
y2=-2.14*sqrt(sqrt(2)-sqrt(abs(x)));  
plot(x,y1,'b',x,y2,'b');  
axis([-2.5,2.5,-3,1.5]);

程序员的七夕生活,程序员特有的浪漫

立体图

f=@(x,y,z)(x.^2+ (9./4).*y.^2 + z.^2 - 1).^3 - x.^2.*z.^3 - (9./80).*y.^2.*z.^3;  
[x,y,z]=meshgrid(linspace(-1.5,1.5));  
val=f(x,y,z);  
isosurface(x,y,z,val,0);   
axis equal;view(3);colormap([1 0.2 0.2])

程序员的七夕生活,程序员特有的浪漫

都看到这儿了,就留个赞再走呗n(*≧▽≦*)n~

小编会为大家奉上更多有趣的小知识的!可以关注一下呀~

如果有想学习C语言C++的小伙伴可以来UP的交流群:

程序员的七夕生活,程序员特有的浪漫