From 35bb2368fe2990423855b3c4dea2b627df79243d Mon Sep 17 00:00:00 2001 From: zahuifan Date: Thu, 30 Dec 2021 08:48:33 +0800 Subject: [PATCH] Add Elbow connectors ea-scripts file --- ea-scripts/Elbow connectors.md | 56 +++++++++++++++++++++++++++++++++ images/elbow-connectors.png | Bin 0 -> 23903 bytes 2 files changed, 56 insertions(+) create mode 100644 ea-scripts/Elbow connectors.md create mode 100644 images/elbow-connectors.png diff --git a/ea-scripts/Elbow connectors.md b/ea-scripts/Elbow connectors.md new file mode 100644 index 0000000..edf784c --- /dev/null +++ b/ea-scripts/Elbow connectors.md @@ -0,0 +1,56 @@ +/* + +![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) + +Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. + +![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/elbow-connectors.png) + +This script converts the selected connectors to elbows. + +See documentation for more details: +https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html + +```javascript +*/ +const elements = ea.getViewSelectedElements(); + +const lines = elements.filter((el)=>el.type==="arrow" || el.type==="line"); + +for (const line of lines) { + if (line.points.length >= 3) { + for (var i = 0; i < line.points.length - 2; i++) { + var p1; + var p3; + if (line.points[i][0] < line.points[i + 2][0]) { + p1 = line.points[i]; + p3 = line.points[i+2]; + } else { + p1 = line.points[i + 2]; + p3 = line.points[i]; + } + const p2 = line.points[i + 1]; + + if (p1[0] === p3[0]) { + continue; + } + + const k = (p3[1] - p1[1]) / (p3[0] - p1[0]); + const b = p1[1] - k * p1[0]; + + y0 = k * p2[0] + b; + const up = p2[1] < y0; + + if ((k > 0 && !up) || (k < 0 && up)) { + p2[0] = p1[0]; + p2[1] = p3[1]; + } else { + p2[0] = p3[0]; + p2[1] = p1[1]; + } + } + } +} + +ea.copyViewElementsToEAforEditing(elements); +ea.addElementsToView(); \ No newline at end of file diff --git a/images/elbow-connectors.png b/images/elbow-connectors.png new file mode 100644 index 0000000000000000000000000000000000000000..0f63ad713cd49da44ef13776e7ef65207937acda GIT binary patch literal 23903 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