天天看點

【伏羲八卦圖】(Python&Matlab實作)

目錄

​​1 與達爾文對話​​

​​2 與老子對話​​

​​2.1 Python實作​​

​​2.2 Matlab實作 ​​​

1 與達爾文對話

140年前,1858年7月1日,達爾文在英倫島發表了自己有關自然選擇的傑出論文。他提出,生物的發展規律是物競天擇。經過物競,自然界選擇并存留最具生命優勢的物種。這些物種愈競愈強。直至人,已無所不能,成為統治世界的物種,這已是不争的事實。但在地球的漫長的演化史上,我們又看見,曾經統治地球的龐然大物恐龍消亡了。一-些科學家将其歸之于小行星對地球的撞擊。但就在我們這一代人眼前,獸中之王的老虎正在一天天消失。我們知道,在其消亡的時間軸上,小行星并未與地球碰撞。

【伏羲八卦圖】(Python&Matlab實作)

循着達爾文的思索,我們得知:動物強于植物,老虎強于小鼠。愈是後續的物種愈強,因為它們是物競天擇的結果。強者存留,弱者淘汰。但環顧四野,植物茂盛,小鼠成群,而百獸之王的老虎卻在一天天消亡。

進一步看,誕生于35億年以前的最原始的物種單細胞生物,迄今仍然是地球上生存力度最強、生物品質最大、分布範圍最廣的生命形态,反而是那些在進化史上較晚近的進階物種如哺乳類動物正在以最快的速度滅絕。換一個眼光重新審視考古生物學,我們會發現,在億萬年來已遭滅絕的99%以上的生物品殺裡,愈進化的物種淘汰幾率愈高、絕種速度愈快,亦即生存力度愈低。

何以是“強”者消亡,“弱”者長存?即是說,在“物競天擇,适者生存”的表觀現象後面,實際上暗藏着一個“自然選擇偏偏要把最不适于生存的弱化産物層層推出”的單向度規定。印度詩聖泰戈爾說:“我們把世界看錯了,反說世界欺騙了我們。”是偉大的達爾文錯了,還是世界在我們有限的認知力之外,另有一番規律?

曆代的哲人、實體學家、化學家、生物學家、社會學家,或思索過這一問題而不得其解,或已走到這一問題的門口,束手無策而返。其留下的大量艱澀難懂之文,多與此有關。

【伏羲八卦圖】(Python&Matlab實作)

2 與老子對話

2.1 Python實作

#====導入相關庫========
import turtle
import time

#====歡迎關注公衆号:電力系統與算法之美======
#====更多驚喜,更多浪漫,更多算法等你=====
angle = 270
turtle.title('我與老子對話')
#=====太極圖=======
def tai():
    r = 200  # 設定半徑
    turtle.penup()  # 拿起畫筆
    turtle.goto(0, 0)  # 到畫布中心
    turtle.setheading(angle)  # 設定目前朝向為angle角度
    turtle.fd(r)  # 前進r的距離
    turtle.pendown()  # 放下畫筆
    turtle.right(90)  # 調整海龜角度

    #======畫陽魚======
    turtle.fillcolor("white")  # 填充為白色
    turtle.begin_fill()  # 開始填充
    turtle.circle(-r / 2, 180)
    turtle.circle(r / 2, 180)
    turtle.circle(r, 180)
    turtle.end_fill()  # 填充結束

    #=====畫陰魚=========
    turtle.fillcolor("black")  # 填充為黑色
    turtle.begin_fill()
    turtle.circle(r, 180)
    turtle.right(180)
    turtle.circle(-r / 2, 180)
    turtle.circle(r / 2, 180)
    turtle.end_fill()

    #=======畫陰魚眼==========
    turtle.penup()
    turtle.setheading(angle)
    turtle.fd(-r / 2)
    turtle.pendown()
    turtle.dot(r / 4, "white")  # dot()繪制具有特定大小和顔色的圓點

    #=========畫陽魚眼=========
    turtle.penup()
    turtle.fd(-r)
    turtle.pendown()
    turtle.dot(r / 4, "black")
    turtle.penup()

turtle.tracer(0)  # 将重新整理率置為0,即不重新整理
for i in range(10000):  # 這裡設定了1w次,也可以是其他次數
    tai()
    turtle.update()  # 更新繪圖
    time.sleep(0.01)  # 休眠時間,這一句可以沒有,但是如果沒有的話,太極轉的會很快
    turtle.clear()  # 清空畫布
    angle += 1      

2.2 Matlab實作 

%% 太極八卦圖

%%~~~~~~~歡迎關注公衆号:電力系統與算法之美~~~~%%

clc;clear;close all;
t=0:.1:pi;
T=0:.1:2*pi;
c=@(t)cos(t);s=@(t)sin(t);
x=c(t);y=s(t);
X=c(t);Y=s(-t);
x1=.1*c(T)-.5;y1=.1*s(T);
x2=x1+1;%y2=y1;
x3=.5*c(t)-.5;y3=.5*s(t);
x4=x3+1;%y4=-y3;
hold on
f=@(x,y,c)fill([x,flip(x3,2),flip(x4,2)],...
    [y,flip(y3,2),flip(-y3,2)],c);
f(X,Y,'k');
f(x,y,'w');
fill(x2,y1,'k',x1,y1,'w')
axis square off