通过算法生成一幅太极图

前几天发的文章“100幅由程序生成的图像”中,居然没有太极图,这是多么经典的图像。所以,在这篇文章中专门介绍下生成太极图的算法。之前我曾经发过关于太极的文章数学图形(1.23)太极线,那时希望能以曲线的方式描绘出太极图的形状,可惜不太成功。而使用图像的方式,生成太极图则相对比较容易,先上代码:

 1 unsigned int    CPixelTaijiYinyang::CalculatePixel(unsigned int x, unsigned int y)
 2 {
 3     float radius1 = m_params[0];
 4     float radius2 = radius1*m_params[1];
 5
 6     float rr = radius1*radius1;
 7
 8     unsigned int black = 0xff000000;
 9     unsigned int white = 0xffffffff;
10     unsigned int gray = 0xff808080;
11
12     float i = 512.0f - x;
13     float j = 512.0f - y;
14
15     if ((i*i + j*j) > rr)
16     {
17         return gray;
18     }
19
20     float t = j + radius1*0.5f;
21     float tt = t*t + i*i;
22     if (tt < radius2*radius2)
23     {
24         return white;
25     }
26     else if (tt < rr*0.25f)
27     {
28         return black;
29     }
30
31     t = j - radius1*0.5f;
32     tt = t*t + i*i;
33     if (tt < radius2*radius2)
34     {
35         return black;
36     }
37     else if (tt < rr*0.25f)
38     {
39         return white;
40     }
41
42     if (i < 0.0f)
43     {
44         return white;
45     }
46     else
47     {
48         return black;
49     }
50 }

再上图:

相应软件:Why数学图像生成工具,在软件中可以调节太极图的外圈半径和内圈半径,如下图所示:

相关文章:

算法之美---100幅由程序生成的图像,总有一幅让你感到惊艳[上]

算法之美---100幅由程序生成的图像,总有一幅让你感到惊艳[下]

时间: 2024-08-02 15:12:55

通过算法生成一幅太极图的相关文章

算法生成太极八卦图

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

恶魔的指纹---49幅由算法生成的邪恶七芒星图像

本文将带你领略算法之美,美得让你感到恐惧.前几天写了生成七芒星的算法,之后我在此算法的基础上做了些修改,从此一发不可收拾.我想我打开了潘多拉的盒子,只要修改下算法的任意一个输入参数,就能够生成一幅独一无二的七芒星图像.这些图像如同来自地狱一样,让我感到惊悚恐惧.有人曾将曼德勃罗集生成的分形图像称为上帝的指纹,那么这些饱含邪恶气息的七芒星图像应该算是恶魔的指纹. 有一次我对公司的一个策划开玩笑说:"你再给我提需求,我就写程序画圈圈诅咒你",并且我去年还真写了这么个程序,见:画圈圈诅咒你.

雪花六出---几幅算法生成的雪花图像,并祝大家平安夜和圣诞节快乐

今天和明天是平安夜和圣诞节,发几幅雪花的图像应下节日.本来是打算写个关于算法生成雪花的学术论文,但发现这东西很难写下去.主要是找不到一个提高论文逼格的数学公式,所以就发下博客吧.共有10幅PNG图像和3幅GIF动画图像,都是黑白二值化的图像. 雪花是种典型的混沌分形物体,在它身上能体现规则与随机的统一.说它规则是因为每一片雪花都是六边形的,至少有六边形的样子.而组成雪花的每一个分子都是随机混沌的.没有办法确定某一个水分子在生成雪花后位于雪花的哪个位置. 雪花是水分子的结晶,水分子又是由一个氧原子

太阳崇拜---64幅由算法生成的八芒星图像

八芒星与卐字符号是遍布于我国广大地域多个民族的文化符号.有学者认为神秘的卐字符号其实是八角星纹的简化变体,它们都代表了太阳在一个回归年的视循环运动,即一年四季的循环变化.八角星纹集中发现于长江中下游与黄河下游的中国东部地区, 在红山和良渚文化也有发现.与从赤峰到香港的中国东面沿海人面岩画分布带之间是否存在关联值得关注.如今,八芒星与卐字符号是遍布于我国广大地域多个民族的文化符号. 再发些从网上收集的八芒星相关资料,原址为:http://blog.sina.com.cn/s/blog_6a4e1c

火火火---12幅算法生成火的图像

火影终于要大结局了,几年前我曾追过一振.发几幅图像纪念一下吧,都是我用算法生成的.这些图像看上去还是有些震撼的,尤其是那几幅“九尾之火”.这几天我一直在想芒星图像的生成算法,感觉自己有点走火入魔了. 先从汉字的"火"开始, "火"字有五个角,可以看做是有五个分支. 五分支生成的火单薄了些,变成七个分支看看: 七分支的火看上去不错,再看九分支的“九尾之火”.这可是本文的高潮: 酷吧.最后两幅图像是十二分支的火: 相关文章: 恶魔的指纹---49幅由算法生成的七芒星图像

正与邪---25幅由算法生成的五角星图像

      五角星,又称五芒星,是指一种有五只尖角,并以五条直线画成的星星图形.做为中国人,一定对五角星有着特殊的情感.我还记得上小学的时候,曾在课桌上刻过几个五角星以表达我的爱国之情.前几天我还写过一个算法生成五星红旗.五角星是边数最少多角形,最简单画它的方法是先画一个正五边形,把各角和其对角用直线相连,并擦去原来的五边形.也可以延长原五边形的各边直到它们相交,从而得到一个大的五角星.其最大的特点是符合黄金分割0.618. 五角星被很多国家的军队作为军官(尤其是高级军官)的军衔标志使用. 一直

混沌开窍---24幅由算法生成的正方形图像

庄子讲过这么一个故事:南海之帝名叫倏,北海之帝名叫忽,中央之帝名叫浑沌.倏和忽经常一起在浑沌的地上相遇,浑沌待他们很好.倏和忽商量怎样报答浑沌的友情,他们说:“人们都有眼.耳.鼻.口七窍,用来看.听.吃.呼吸,唯独浑沌什么也没有,我们就试着为他凿开七窍吧.”于是他们就为浑沌凿七窍,一天凿成一窍,凿到第七天,七窍全凿通时,浑沌就死了. 我对这个寓言的理解是:混沌是无规律的,一旦为其找到了规律,那么混沌就称不上混沌了. 在上一篇文章中我讲到谢尔宾斯基三角形的生成算法,那么将三角形改成一个矩形或正方形

三生万物---算法生成的25幅三角形图像

<道德经>第四十二章:“道生一,一生二,二生三,三生万物.万物负阴而抱阳,冲气以为和.”这是老子对宇宙起源的一种探索和认识,其含义是说宇宙最初有道,有物混成,先天地生.老子的这话是对伏曦八卦和<易经>的总结.太极生两仪,谓阴阳:两仪生四象,谓太阴,少阳,少阴,太阳:四象生八卦,谓乾.兑.离.震.巽.坎.艮.坤.八卦及六十四卦,过于繁复,老子贯通易理,总结为三生万物. 太极是阴中有阳,阳中有阴的混沌状态.太极生两仪,谓阴阳.阴阳是对立的无限的两极,是理想状态,构不成客观存在.阴阳相济

算法生成五星红旗

这一篇将提供一套生成五星红旗的算法,代码中满满都是正能量.上一篇文章是生成N芒星,五角星是就芒星的一种,所以不难生成一个五角星的图像.中华人民共和国国旗是五星红旗,旗面为红色,长宽比例为3:2.左上方缀黄色五角星五颗,四颗小星环拱在一颗大星的右面,并各有一个角尖正对大星的中心点.1.4颗黄星对齐,2.3颗黄星对齐. 代码如下: h 1 class CPixel5StarsRedFlag : public IPixelEquation 2 { 3 public: 4 CPixel5StarsRed