衍八卦,明易理(原生js)

212 阅读6分钟

访问地址 [840450999.github.io/yidao/index…]

前言

细细想来,学习js已两年有余,在前端领域中,那一本本厚厚的书籍为我打开了有意思的前端大门,让那之前眼中神秘的程序仿佛不再遥远。

在不断的封装中,我开始不再纠结于是否使用何种设计模式,是函数式还是面向对象,相互之间的解耦好似成了自然而然的事情,曾经不经意间所听闻的一句话、仿佛渐渐的在心中有所明悟,那则是

一阴一阳之谓道


在练习太极拳的过程中,师傅总言,要刚柔相济,动静结合。代码好似也是这样,以变量为柔和之基,函数为阳刚之动,刚柔相推,变化也蕴含在其中。html,css作为外在的象,那js则是内在的理,理推象生,象推理动,信息在二者之间不断流转变化

生两仪

太极者,无极而生,动静之机,阴阳之母也。这是太极拳论中所述的一句话。亦是对太极之道的一种感悟。凡见事见物,皆有其阴阳。两人同行,知前有后,知高有矮。在衍化的开始,我们先以0与1来代替阴与阳(当然想用其他的符号也都可以,例如两个0代表阴,一个0代表阳也都行,此中的阴阳无意),来作为我们构建八卦的基石。以太极这个数组作为我们起始之基础。

 class y {
    constructor() {
        this.yin = '0';
        this.yang = '1';
        this.TaiJi = ['0', '1'];
       }
   }

这里我们就省略掉html,css的过程

用断开的横线代表 阴(或者说两个并立的阳)

用实体的横线代表 阳

以目前太极的状态,0作为阴,1作为阳的话,则我们显出的象是这个状态

yinyang.png

化四象

拳理中,有动静之太极,虚实之太极,动静之太极,在缓在静中,慢慢能体会到身体是如何一点点启动,力量节节的贯穿,越来越圆融,而后一点点至无处不太极,肩胯皆能发力不逾矩

有阴,有阳后,阴与阳这两面开始有了它真实的意思。而阴亦有两仪,阳也一样有两仪。就好似一日之中,有白昼黑夜,白昼黑夜之中,同样有清晨与正午,黄昏与黑夜。

数据与成象为例,数据为阴,经过运算展现为节点后,我们期望两者其实为一体,则需中间js的运算转换,以及浏览器的事件绑定让其在用户点击等操作让象变动后,让变化的逻辑回环入数据。

在这一步我们需要一个衍化函数,来代表阴阳之上的新的阴阳叠加 ,即将传入的数组进行遍历,将每一项上叠加0与1,然后拍平这个数组

_YanHua(arr) {
     return arr.reduce((N, X) => N.concat(this.TaiJi.map(I => X + I)), [])
 }
  //执行
  this.sixiang = this._YanHua(this.TaiJi);

此时我们的四象经过衍化函数,成了00,01,10,11,这四个状态,使用parseInt(string,2)得0,1,2,3,四象之分,我们可以给它系上古时的对应的文字来代表它的意思

this.SiXiang = ['老阴', '少阳', '少阴', '老阳'];

这一步中,我们四象的衍化则自然衍化为了此四个展现形式,它可以代表一天的四个对应的状态,也可以代表前后端交互中 browser => tcp request => server => tcp response => browser 逻辑回环

sixiang.png

衍八卦

继衍化四象的逻辑,四象叠之以阴阳,每象分之两仪,然后配上八卦的文字顺序

 this.bagua = this._YanHua(this._YanHua(this.TaiJi));
 this.BaGua = ["坤", "艮", "坎", "巽", "震", "离", "兑", "乾"];

此时八卦为衍生出的数组为 000,001,010,011,100,101,110,111 ,若以象来代,则为下图

bagua.png 少时曾读悟空传,见过这样一句话,鸿蒙初辟无姓,打破冥顽须悟空 ,我想,先祖伏羲立八卦之初,也许并无文字,亦无至十而进之制,八卦之创,本为一,由一而生二,二则分阴分阳,见物之两面,其三,在阴阳之中。八卦本无意,而能系之以它意。

以下引系词传中两段话
子曰:“夫<易>何为者也?夫<易>开物成务,冒天下之道,如斯而已者也。”
子曰:“书不尽言,言不尽意。“

定八方

是故<易>有大极,是生两仪。两仪生四象。四象生八卦。 我们以易衡量一物,可用两仪代两面,亦可以四象,八卦,甚至六十四卦,一百二十八卦,一千零二十四卦,如此衍化来代这一物,冒这一天下之道。
在我们现代衡量圆之一周时,以三百六十为基,则我们可先分之为二,以象我们阴阳之对应位,而后用现代的一周,也就是360度分之为方位的位数,四象则为90,八卦则为45,六十四卦则为5.625,因易之衍化,为一阴一阳,方位之定,亦是一阴一阳,我们将位数除以二,则只需定一半的位置,另一半取最开始分之阴阳的度数计算即可得

_FangWei(arr) {
        let S = 360 / 2,
            Yi = -360 / arr.length,
            L = arr.length - 1,
            Zhong = arr.length / 2;
        return [].slice.call(arr.slice(0, Zhong).reduce((O, X, I) => (O[I] = parseInt(X, 2) *    Yi, O[L - I] = parseInt(X, 2) * Yi + S, O), { length: arr.length }))
    }
    
 this.FWsixiang = this._FangWei(this._YanHua(this.TaiJi))

至此,四象与八方则可定,六十四卦亦可衍化。
是故阖户谓之坤,辟户谓之乾,一阖一辟谓之变,往来不穷谓之通,见乃谓之象,形乃谓之器,制而用之谓之法,利用出入,民咸用之谓之神

0VW)6)0`1B3~T15AMRTPMGE.png

系爻辞

八卦衍化后,将卦对应上文字,则可通过文字知道他人描述的是那一个卦,就好似十进制中的十个数,十个音对十个符号,八卦可用于描绘天地之间能量的传递,亦可用于描绘八方的位置,好似大无其外,小无其内。

乾知大始,坤作成物。乾以易知,坤以简能;易则易知,简则易从;易知则有亲,易从则有功;有亲则可久,有功则可大;可久则贤人之德,可大则贤人之业。易简而天下之理得矣。天下之理得,而成位乎其中矣。

结语

易中有六十四卦,又不止于六十四卦,我华夏之先贤多若天上之繁星,能生于此世,闻其良言,于漫漫历史长河中惊鸿一瞥窥见那一抹风采,实乃我辈之幸事。人生路遥,若感迷茫,不妨去那故去的往事中,寻一寻那跨越历史长河一直照耀着我们的明灯。也许会见到先贤先祖们用他们的一生给我们留下的礼物。 本人资质愚钝,年龄尚浅,事历较少,其中道理还需细细体会咀嚼,对易理之感悟皆从太极拳以及代码中来,若感悟有误,还请不吝赐教