在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();
}
示例: