算法生成卐和卍字图

前面讲了算法生成道教的太极八卦图,这一节发个与佛教有关的卍字图.卍梵文Svastika,武则天定音为万字;意译为吉祥海云,吉祥喜旋,为佛三十二相之一,也是八十种好之一;此为显现于佛及十地菩萨胸臆等处之德相。长阿含经卷一大本经、大萨遮尼乾子所说经卷六、大般若经卷三八一等均记载佛之胸前、手足、腰间等处有卍字。于今印度阿摩罗婆提(Ama-ravati)出土之佛足石,亦刻有数个卍字。纳粹德国的纳粹党标志为希特勒借用的标致,但纳粹党标志的方向是斜的和黑色,而传统信仰中代表吉祥美好的卍字符多是明亮的色彩。

佛教传入华夏大地,卍和卐也便传到了中国,并且卍和卐也融入中华文化之中,从那以后汉字中有了卐合卍。其实这个卐合卍是一个字”万“而且是对称的,卐是右旋(代表胸前十字向自己右手旋转),卍为左旋(代表胸前的十字向自己左手旋转)。

  对于生成卍字的算法,比起八卦图要容易得多,整体思路是创建一个大个矩形,再用四个小矩形将其不需要的地方扣去。代码如下:

 1 struct Rect
 2 {
 3     float left;
 4     float right;
 5     float top;
 6     float bottom;
 7 };
 8
 9 inline bool IsInRect(const Rect& rect, float x, float y)
10 {
11     return (x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom);
12 }
13
14 unsigned int    CPixelSvastikaLeft::CalculatePixel(unsigned int x, unsigned int y)
15 {
16     float size = m_params[0];
17     float width = m_params[1];
18     float angle = m_params[2]*PI/180;
19
20     unsigned int black = 0xff000000;
21     unsigned int gray = 0xff808080;
22
23     float i = x - 512.0f;
24     float j = y - 512.0f;
25
26     Rect rect    = {-size, size, -size, size};
27     Rect rtLeft  = {-size, -width*0.5f, -size + width, -width*0.5f};
28     Rect rtTop   = {width*0.5f, size - width, -size, -width*0.5f};
29     Rect rtRight = {width*0.5f, size, width*0.5f, size - width};
30     Rect rtDown  = {-size + width, -width*0.5f, width*0.5f, size};
31
32     float _s = sinf(angle);
33     float _c = cosf(angle);
34     float ti, tj;
35
36     ti = i*_c - j*_s;
37     tj = i*_s + j*_c;
38
39     if (!IsInRect(rect, ti, tj))
40     {
41         return gray;
42     }
43     else if (IsInRect(rtLeft, ti, tj) ||
44              IsInRect(rtTop, ti, tj) ||
45              IsInRect(rtRight, ti, tj) ||
46              IsInRect(rtDown, ti, tj))
47     {
48         return gray;
49     }
50
51     return black;
52 }

另一个方向的卐字,只需要对上面代码做如下改动:

    Rect rtLeft  = {-size, -width*0.5f, width*0.5f, size - width};
    Rect rtTop   = {-size + width, -width*0.5f, -size, -width*0.5f};
    Rect rtRight = {width*0.5f, size, -size + width, -width*0.5f};
    Rect rtDown  = {width*0.5f, size - width, width*0.5f, size};

相应软件:Why数学图像生成工具,在软件中可以调节卍字的宽度和旋转,如下图所示:

时间: 2024-08-02 20:52:08

算法生成卐和卍字图的相关文章

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

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

算法生成N芒星

前面两个图像生成算法是:道教的太极八卦图和佛教的卐和卍字图.这一节整个洋气的图像:芒星.但愿我别召唤出什么恐怖的禁忌.平时看玄幻小说,经常读到有关六芒星,七芒星,九芒星的技法.芒星是由几个完全的等腰三角形(有时是正三角形)和一个正多边形组成的二维图形.等腰三角形的个数与正多边形的边数相等.由五个等腰三角形和正五边形组成的图形叫“五芒星”(俗称:五角星).由六个等腰三角形和正六边形组成的图形叫“六芒星”……依此类推.芒星在美学.历史和占卜都有着很大的用处. 芒星在生活中与我们息息相关,我们常说的“

算法生成太极八卦图

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

算法系列笔记8(有关图的算法二—最短路径问题)

图的最短路径问题主要分为两类,单源最短路径问题和全对最短路径问题.单源最短路径问题指给点单个源点,求其到所有其它顶点之间的最短距离.而全对最短路径问题指所有顶点之间的最短路劲问题.此外对于单对最短路径问题,从渐进意义上来看,目前还没有比最好的单元算法更快的算法来解决这一问题. 一:单源最短路径问题 单源最短路劲问题根据其权重分为四类,当图G=(V,E)为无权图,直接使用广度优先遍历(这里不做介绍):当权值为非负值,则使用Dijkstra算法:存在负权值及负权环,可以使用Bellman-Ford算

算法生成五星红旗

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

我的软考之路(五)——数据结构与算法(3)之图

图跟树一样,也是非线性结构,咋看起来有点复杂,其实它很简单.树具有层次关系,上层元素可以与下一个多个元素连接,但是只能和上层的一个元素连接.在图结构中,节点间的连接是任意的,任何一个元素都可以与其他元素连接. 图相对而言很简单,我们只介绍的图的遍历和最小生成树,现在我们开始. 遍历 1.概念 从图中某一个顶点出发,访问图中的每一个结点,并要求只能访问一次,不能重复访问. 2.方法 (1)广度优先遍历 基本思想:首先访问顶点,再访问顶点的全部未访问的邻结点,再访问邻结点的所有结点即可(类似树的层次

MySQL WorkBench6.1生成各表关系图

MySQL WorkBench生成各表关系图网上教程很多,但我下的6.1版就死活找不到,不过最终还是找到了.首页的这里 MySQL WorkBench6.1生成各表关系图

PHP使用HighChart生成股票K线图详解

本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群:   281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29LoD19)    QQ:1542385235 HighChart是集合了各种常见的web图表的开源合集,其中产生股票K线图的部分叫做“HighStock”.大家如果需要可以到我的资源页下载,是最新版: http://download.csdn.net/detail/wangyuchun_799/9353525

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

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