Tweetable Mathematical Art 太极八卦图

Matrix67 blog里面看到了Tweetable Mathematical Art

使用C++实现3个函数RD(i, j), GR(i, j), BL(i, j)分别返回像素(i, j)的R/G/B值,最终生成1幅1024*1024的图片。要求是每个函数代码不超过140字符,即Tweetable。

来个太极八卦图,娱乐一下。

unsigned char RD(int i,int j){
    // YOUR CODE HERE
#define LEFT (i < DIM/2)
#define C1 C(DIM/2, DIM/2, DIM/2)
#define C2 C(DIM/2, DIM/4, DIM/4)
    return BL(i, j);
}
unsigned char GR(int i,int j){
    // YOUR CODE HERE
#define C3 C(DIM/2, 3*DIM/4, DIM/4)
#define C4 C(DIM/2, DIM/4, DIM/16)
#define C5 C(DIM/2, 3*DIM/4, DIM/16)
    return BL(i, j);
}
unsigned char BL(int i,int j){
    // YOUR CODE HERE
#define C(x, y, r) (_sq(i - (x)) + _sq(j - (y)) < _sq((r)))
    return !C1 ? 127 : C2 ? C4 ? 255 : 0 : C3 ? C5 ? 0: 255 : LEFT ? 0 :255;
}
unsigned char RD(int i,int j){
#define r(n)(rand()%n)
static char c[1024][1024];return!c[i][j]?c[i][j]=!r(999)?r(256):RD((i+r(2))%1024,(j+r(2))%1024):c[i][j];
}

生成图片

时间: 2024-08-28 07:44:36

Tweetable Mathematical Art 太极八卦图的相关文章

使用CSS3生成一个会旋转的太极八卦图

学习了CSS3 后,可以做出很多炫酷的效果,但是基本功需要打扎实,就从学习使用纯CSS技术生成太极八卦图学起. 第一步,先使用HTML进行一下简单的布局,如下,只需要一个DIV即可: <body> <div></div> </body> 第二步,插入了DIV之后, 就需要为其添加样式,以及设置其为圆形,我们宽要设置的是高的2倍,这样在为底边框添加了宽度后,保证DIV出来后是圆形,如下: div { width:500px; height:250px; bor

Tweetable Mathematical Art 习作

从Matrix67 blog里面看到了Tweetable Mathematical Art比赛,感觉挺有意思. 这个比赛的方法很简单,实现3个函数RD(i, j), GR(i, j), BL(i, j)分别返回像素(i, j)的R/G/B值,最终生成1幅1024*1024的图片,看谁的图片被赞最多.要求是每个函数代码不超过140字符,即Tweetable. 手痒写了一个:放大镜效果,简单的Ray Tracing.代码如下: unsigned short RD(int i,int j){ #def

Tweetable Mathematical Art 代码框架

昨晚在微信公众号看到 <有没有一段代码,让你觉得人类的智慧也可以璀璨无比>里面介绍了一个叫<Tweetable Mathematical Art>的代码游戏,看完我激动不已,这些人都太NB了. 我迫不及待要试一下,可惜该游戏原来的框架生成的图片上ppm格式的,在Windwos上打开比较麻烦,所以我索性写了一个生成bmp格式的代码框架. 如果有新idea的话可以在body.hpp中加入一个新类就可以了,这个代码框架可在linux和Windows上跑. pic.hpp #ifndef 

算法生成太极八卦图

前面一篇文章是通过算法生成一幅太极图,有道是:无极生太极,太极生两仪,两仪生四象,四象生八卦.那么这一节就为太极生成一个八卦图.虽然我对易经这种玄之又玄的哲学没什么研究,但至少八卦可以看做是二进制的鼻祖.愿太极八卦保佑我们的程序绝无BUG,永不修改. 根据二进制数的规定:有,用1表示;无,用0表示.我们可以得出八卦各卦阳爻和阴爻的二进制数.下面我们写出八卦各卦阳爻的二进制数(即有阳爻为1,无阳爻为0): 坤:黑黑黑,卦符阴阴阴,二进制数为000 艮:黑黑白,卦符阴阴阳,二进制数为001 坎:黑白

太极八卦图

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <canvas id="canvas" width="800px" height="800px"></canvas> <script ty

旋转太极八卦

太极八卦图,以同圆内的圆心为界,画出相等的两个阴阳鱼表示万物相互关系.阴鱼用黑色,阳鱼用白色,这是白天与黑夜的表示法.阳鱼的头部有个阴眼,阴鱼的头部有个阳眼,表示万物都在相互转化,互相渗透,阴中有阳,阳中有阴,阴阳相合,相生相克,即现代哲学中和矛盾对立统一规律表示法. 哈哈,装了个逼.其实我就是想教大家用css3画出旋转太极八卦.仅此而已. 实现效果如下图: Html的代码很简单,就一行代码,如下图: 下面对div.tl标签进行一系列属性设置,变化如下图: ............ ......

用h5中的canvas 绘制八卦图

1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>canvas绘制八卦图</title> 6 </head> 7 8 <body> 9 <canvas id="canvas" width="600" height="500"><

使用CSS达到阴阳八卦图等图形

CSS还是比較强大的,能够实现中国古典的"阴阳八卦图"等形状. 正方形 #rectangle { width: 200px; height: 100px; backgrount-color: red; } #circle { width: 100px; height: 100px; -webkit-border-radius: 100px; -moz-border-radius: 100px; border-radius: 100px; background-color: red; }

用CSS实现阴阳八卦图等图形

CSS还是比较强大的,可以实现中国古典的"阴阳八卦图"等形状. 正方形 #rectangle { width: 200px; height: 100px; backgrount-color: red; } #circle { width: 100px; height: 100px; -webkit-border-radius: 100px; -moz-border-radius: 100px; border-radius: 100px; background-color: red; }