[译] 短小精悍又不可思议的数学艺术挑战赛 - 作品集 3
2022-7-31 ~ 2023-4-29
(0)
比赛简介
怎样使用本文中的代码,以及详细比赛规则,请看:https://codebus.cn/yangw/tweetable-mathematical-art
以下是各路大神的优秀作品。
- 作品集 1:https://codebus.cn/yangw/tweetable-mathematical-art-1
- 作品集 2:https://codebus.cn/yangw/tweetable-mathematical-art-2
- 作品集 3:(本文)
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);
生成效果:
添加评论
取消回复