jsMind 使用直角畫線

在jsMind的默認畫線中,連接各個節點的是使用的貝塞爾曲線畫法,默認展示的線條如下:

想要改成直線,就需要重新繪製這些連線,其中jsMind的畫線是存在於 draw_line方法中的。默認採用的是貝塞爾曲線畫法

想要畫成直線,就需要改造以下,可以自定義聲明兩個直角直線畫法

1.取兩個節點中途點作爲拐點

//用直角畫線方式 取得是兩點中間的距離
        _brokenline_to: function (ctx, x1, y1, x2, y2) {
            ctx.beginPath();
            ctx.moveTo(x1, y1);
            ctx.lineTo(x1 + (x2 - x1)  / 2,y1);
            ctx.lineTo(x1 + (x2 - x1)  / 2,y2);//延長了一半 
            ctx.lineTo(x2,y2);
            ctx.stroke();
        },

示例:

2.取靠近父級節點點

//取得是相對近的方式
        _nearby_brokenline_to: function (ctx, x1, y1, x2, y2) {
            ctx.beginPath();
            ctx.moveTo(x1, y1);
            let offset = x1<x2?-5:5;//僅延長5
            ctx.lineTo(x2+offset, y1);
            ctx.lineTo(x2+offset,y2);
            ctx.lineTo(x2,y2);
            ctx.stroke();
        }

示例:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章