在之前的博客中詳細的講過圖的相關(guān)內(nèi)容,比如《圖的物理存儲結(jié)構(gòu)與深搜、廣搜》。當然之前寫的程序是比較抽象的。上篇博客我們以可視化的方式看了一下各種排序的過程,今天博客中我們就來可視化的看一下圖的相關(guān)部分,今天我們要畫的圖是無向圖,并且每個點到其他點都有直接的連線。今天我們就基于此圖來做一些事情。當然本篇博客在畫圖時我們使用的是Bezier曲線來畫的,因為之前也聊過關(guān)于Bezier的相關(guān)東西,所以今天就不對Bezier做過多贅述了。
今天的博客我們有易到難大致分為三個部分。第一部分我們會畫出相應(yīng)的圖,并該圖是可以對每個點進行拖動的,在拖動的過程中,我們對其進行重繪。第二部分會取消拖動,使用UIView自帶的動畫來讓其自己變換,當然本部分你也可以使用Timer或者GCD的TimerSource讓其運動。第三部分則是第二部分的升級,再第二部分的基礎(chǔ)上我們稍作改進,此部分我們使用的是DispatchSourceTimer來讓每個點進行運動的。在第三部分我們讓局部范圍的點進行連線,也就是在運動的過程中,我們需要找出在當前點的規(guī)定范圍內(nèi)有哪些點,然后將這些點進行連接。
上述這三部分的內(nèi)容下方會詳細的進行介紹,并會附有相應(yīng)的運行結(jié)果圖。接下來就進入我們的主題部分。
一、圖的繪制