在WPF的Canvas上繪製二叉樹

2021-09-08 16:03:28 字數 513 閱讀 8774

二叉樹是資料結構最重要的部分之一,資料結構據說是學習程式設計的基礎課程,雖然好像和平時工作關係不大,但面試時面試官很喜歡出點資料結構演算法來刁難你。

一直以來,寫演算法好像只是c/c++的事,一串串數字輸出在冰冷的手術台,sorry,是控制台上。但中間的過程,只能畫在草紙上,或者像下盲棋一樣用用腦汁算。其實我們多數人並不需要到高手的那個境界,只要會走法,能走兩步就夠了,所以有乙個棋盤的話會對我們練習幫助很大。

下面是我在wpf視窗上畫的乙個二叉樹:

每個節點都是乙個canvas,裡面又包含乙個ellipse和textblock。

節點通過margin屬性來定位。在遞迴顯示時,先計算子節點的margin,然後再通過父節點和子節點的margin算出連線的起點和終點座標。需要注意的是,從上到下,樹枝叉的角度要依次遞減,不然可能會出現節點重疊或樹枝相交。

雖然剛開始接觸wpf,不過看起來不算太難,呵呵。

在html5的Canvas上繪製橢圓的幾種方法總結

概述 html5中的canvas並沒有直接提供繪製橢圓的方法,下面是對幾種繪製方法的總結。各種方法各有優缺,視情況選用。各方法的引數相同 context為canvas的2d繪圖環境物件,x為橢圓中心橫座標,y為橢圓中心縱座標,a為橢圓橫半軸長,b為橢圓縱半軸長。引數方程法 該方法利用橢圓的引數方程來...

滑鼠在canvas畫布上繪製凸多邊形

主要功能 1.滑鼠繪製凸多邊形 2.拖動多邊形頂點座標,可修改多邊形 2.凸多邊形內巢狀多個多邊形 3.判斷是否在監控區內 exports.install function vue,options 滑鼠按下 canvas.onmousedown function event else 滑鼠移動 ca...

Canvas線段的繪製

moveto x,y lineto x,y linewidth 線條寬度 strokestyle 線條樣式 storoke 線條繪製 填充fillstyle 填充 fill 繪製填充 canvas提供的圖形繪製函式 rect x,y,width,height 定義矩形狀態 繪製矩形 fillrect...