慢羊羊的空间

工作做不完了,300出,无瑕。

[译] 短小精悍又不可思议的数学艺术挑战赛 - 作品集 3

比赛简介

怎样使用本文中的代码,以及详细比赛规则,请看:https://codebus.cn/yangw/tweetable-mathematical-art

以下是各路大神的优秀作品。

7.

by Manuel Kasten,107 票。

这个很有趣,因为它根本不使用 i、j 参数。相反,它会通过静态变量存储状态。

代码:

unsigned char RD(int i, int j){
	static double k;k+=rand()/1./RAND_MAX;int l=k;l%=512;return l>255?511-l:l;
}
unsigned char GR(int i, int j){
	static double k;k+=rand()/1./RAND_MAX;int l=k;l%=512;return l>255?511-l:l;
}
unsigned char BL(int i, int j){
	static double k;k+=rand()/1./RAND_MAX;int l=k;l%=512;return l>255?511-l:l;
}

实现效果:

8.

by faubiguy,104 票。

代码:

unsigned char RD(int i, int j)
{
	int a=(j?i%j:i)%64/4;int b=i-32;int c=j-32;return _sq(abs(i-512))+_sq(abs(j-512))>_sq(384)?a:int(sqrt((b+c)/2))%4*(_cb((b-c)*2)%256/32+64);
}

unsigned char GR(int i, int j)
{
	int a=(j?i%j:i)%64/4;return _sq(abs(i-512))+_sq(abs(j-512))>_sq(384)?a:int(sqrt((i+j)/2))%4*(_cb((i-j)*2)%256/32+64);
}

unsigned char BL(int i, int j)
{
	int a=(j?i%j:i)%64/4;int b=i+32;int c=j+32;return _sq(abs(i-512))+_sq(abs(j-512))>_sq(384)?a:int(sqrt((b+c)/2))%4*(_cb((b-c)*2)%256/32+64);
}

(译者注:以上代码是根据原作者代码修改而成。原作者的代码无法生成目标图像。以下是原作者的全部代码)
/* RED */
//	int a=(j?i%j:i)*4;int b=i-32;int c=j-32;return _sq(abs(i-512))+_sq(abs(j-512))>_sq(384)?a:int(sqrt((b+c)/2))^_cb((b-c)*2);
/* GREEN */
//	int a=(j?i%j:i)*4;return _sq(abs(i-512))+_sq(abs(j-512))>_sq(384)?a:int(sqrt((i+j)/2))^_cb((i-j)*2);
/* BLUE */
//	int a=(j?i%j:i)*4;int b=i+32;int c=j+32;return _sq(abs(i-512))+_sq(abs(j-512))>_sq(384)?a:int(sqrt((b+c)/2))^_cb((b-c)*2);

生成效果:

9.

(更新中)

添加评论