From d8b9ac9fe6d79928fff7b78855fef1a01d76e41d Mon Sep 17 00:00:00 2001 From: qinoy Date: Wed, 24 May 2023 14:10:21 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AB=AF=E5=88=B0=E7=AB=AF=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=20=E8=8A=82=E7=82=B9=E4=BD=8D=E7=BD=AE=E5=88=86=E5=B8=83?= =?UTF-8?q?=E4=B8=8E=E8=BF=9E=E7=BA=BF=E5=A4=84=E7=90=86=E9=98=B6=E6=AE=B5?= =?UTF-8?q?=E6=80=A7=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...oft.apps.coe.method.process.subprocess.jar | Bin 41951 -> 42463 bytes .../process.subprocess/diagram.schema.tpl | 2 +- .../subprocess/graph/GraphLinkerRender.java | 72 +++++++++++++++++- .../process/subprocess/web/SubProcessWeb.java | 4 +- 4 files changed, 72 insertions(+), 6 deletions(-) diff --git a/com.actionsoft.apps.coe.method.process.subprocess/lib/com.actionsoft.apps.coe.method.process.subprocess.jar b/com.actionsoft.apps.coe.method.process.subprocess/lib/com.actionsoft.apps.coe.method.process.subprocess.jar index ef064dc08f95607c1012288c0bc4b3a647153594..039cc2746efbf9f6cbb9d8e3d8a20ff964fae220 100644 GIT binary patch delta 11581 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 QGV$M4HH8eYY5z(6Ken}Y#{d8T delta 11047 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 z 0){ // 说明当前节点有连线 for (Integer nodeIndex : nextNodeIndex) { double[] toPoi = vertexPosition[nodeIndex]; - double[][] turnPoi = calculationStartAndEndAndTurningPoint(fromPoi, toPoi); + double[][] turnPoi = "horizontal".equals(direction) + ? calculationLinkerPointInHorizLayOut(fromPoi, toPoi) + : calculationLinkerPointInVertLayOut(fromPoi, toPoi); double[] angleArr = calculationLinkerAngle(fromPoi, toPoi, turnPoi[1], turnPoi[turnPoi.length - 2]); // 构建连线 JSONObject linkerObj = JSONObject.parseObject(LinkerDefConstant.linker); @@ -122,7 +125,7 @@ public class GraphLinkerRender { * @param toPoi 终点图形节点坐标(左上角) * @return [0]: 连线起始点坐标、[1]: 连线第一个折点、[2]: 连线第二个折点、[3]: 连线第三个折点(如果存在)、[n]: 最后一个为连线终点 中间都为折点 */ - private double[][] calculationStartAndEndAndTurningPoint(double[] fromPoi, double[] toPoi){ + private double[][] calculationLinkerPointInHorizLayOut(double[] fromPoi, double[] toPoi){ double fromX = fromPoi[0],fromY = fromPoi[1],toX = toPoi[0],toY = toPoi[1]; if (fromY == toY) { // 水平 double[] startPoint = (fromX < toX) @@ -206,6 +209,69 @@ public class GraphLinkerRender { return new double[2][2]; } + /** + * 纵向排布 + * 计算两个坐标之间连线的起点、折点、终点 + * @param fromPoi 起始图形节点坐标(左上角) + * @param toPoi 终点图形节点坐标(左上角) + * @return [0]: 连线起始点坐标、[1]: 连线第一个折点、[2]: 连线第二个折点、[3]: 连线第三个折点(如果存在)、[n]: 最后一个为连线终点 中间都为折点 + */ + private double[][] calculationLinkerPointInVertLayOut(double[] fromPoi, double[] toPoi){ + double fromX = fromPoi[0],fromY = fromPoi[1],toX = toPoi[0],toY = toPoi[1]; + if (fromY == toY){ // 水平 分析可知 水平方向上不会出现 从左到右直连的情况 只有 右边节点右侧锚点出 向上走 左折 连到左侧节点上方锚点 + double[] startPoi = new double[]{fromX + SubProcessConst.SUB_PROCESS_SHAPE_W, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H / 2}; + double[] turnPoi1 = new double[]{fromX + SubProcessConst.SUB_PROCESS_SHAPE_W + SubProcessConst.SHAPE_HORIZ_INTERVAL / 2, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H / 2}; + double[] turnPoi2 = new double[]{fromX + SubProcessConst.SUB_PROCESS_SHAPE_W + SubProcessConst.SHAPE_HORIZ_INTERVAL / 2, fromY - SubProcessConst.SHAPE_VERT_INTERVAL / 2}; + double[] turnPoi3 = new double[]{toX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, toY - SubProcessConst.SHAPE_VERT_INTERVAL / 2}; + double[] endPoi = new double[]{toX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, toY}; + return new double[][]{startPoi, turnPoi1, turnPoi2, turnPoi3, endPoi}; + }else if (fromX == toX){ // 垂直 分析可知 垂直方向上应该不会有 toY < fromY 的情况 鉴于数据不确定性 先写上 + double[] startPoi = fromY < toY + ? new double[]{fromX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H} + : new double[]{fromX + SubProcessConst.SUB_PROCESS_SHAPE_W, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H / 2}; + double[] endPoi = new double[]{toX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, toY}; + return fromY < toY + ? new double[][]{ + startPoi, + {fromX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H + SubProcessConst.SHAPE_VERT_INTERVAL / 2}, + {fromX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H + SubProcessConst.SHAPE_VERT_INTERVAL / 2}, + endPoi} + : new double[][]{ + startPoi, + {fromX + SubProcessConst.SUB_PROCESS_SHAPE_W + SubProcessConst.SHAPE_HORIZ_INTERVAL / 2, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H / 2}, + {fromX + SubProcessConst.SUB_PROCESS_SHAPE_W + SubProcessConst.SHAPE_HORIZ_INTERVAL / 2, toY - SubProcessConst.SHAPE_VERT_INTERVAL / 2}, + {toX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, toY - SubProcessConst.SHAPE_VERT_INTERVAL / 2}, + endPoi}; + }else { // 分布在四个象限内 + if (fromX > toX && fromY > toY){ // 目标节点在第二象限 + return new double[][]{ + {fromX + SubProcessConst.SUB_PROCESS_SHAPE_W, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H / 2}, + {fromX + SubProcessConst.SUB_PROCESS_SHAPE_W + SubProcessConst.SHAPE_HORIZ_INTERVAL / 2, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H / 2}, + {fromX + SubProcessConst.SUB_PROCESS_SHAPE_W + SubProcessConst.SHAPE_HORIZ_INTERVAL / 2, toY - SubProcessConst.SHAPE_VERT_INTERVAL / 2}, + {toX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, toY - SubProcessConst.SHAPE_VERT_INTERVAL / 2}, + {toX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, toY} + }; + }else if (fromX > toX && fromY < toY){ // 目标节点在第三象限 + return new double[][]{ + {fromX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H}, + {fromX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H + SubProcessConst.SHAPE_VERT_INTERVAL / 2}, + {toX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, toY - SubProcessConst.SHAPE_VERT_INTERVAL / 2}, + {toX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, toY} + }; + }else if (fromX < toX && fromY < toY){ // 目标节点在第四象限 + return new double[][]{ + {fromX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H}, + {fromX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H + SubProcessConst.SHAPE_VERT_INTERVAL / 2}, + {toX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, toY - SubProcessConst.SHAPE_VERT_INTERVAL / 2}, + {toX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, toY} + }; + }else { + // fromX < toX && fromY > toY 目标节点在第一象限 分析可知 纵向排布的情况下 应该不会出现目标节点在第一象限的情况 + } + } + return new double[2][2]; + } + /** * 判断连线是否与矩形节点相交 diff --git a/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/web/SubProcessWeb.java b/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/web/SubProcessWeb.java index f412dca1..ef04e294 100644 --- a/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/web/SubProcessWeb.java +++ b/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/web/SubProcessWeb.java @@ -265,11 +265,11 @@ public class SubProcessWeb extends ActionWeb { // 获取节点分布 GraphLayout graphLayout = new GraphLayout(graphAdjMatrix.getAdjMatrix(), nodeList); - double[][] position = graphLayout.horizLayOut(); + double[][] position = "horizontal".equals(direction) ? graphLayout.horizLayOut() : graphLayout.vertLayOut(); // 组装连线 GraphLinkerRender linkerRender = new GraphLinkerRender(nodeList, position, graphAdjMatrix); - JSONArray linkers = linkerRender.toAssembleLinker(); + JSONArray linkers = linkerRender.toAssembleLinker(direction); // 新建模型 PALRepositoryModel parentModel = PALRepositoryCache.getCache().get(locationId);