2 компонента на стороне в PlantUML

Вот MCVE в PlantUML:

@startuml

'Define the components
[Main component] as c_main_component
[comp1] as c_comp1
[com2] as c_comp2
[comp3] as c_comp3
[comp4] as c_comp4

'Define the relationships
c_main_component -- c_comp3
c_main_component -- c_comp4

c_main_component - c_comp2
c_main_component - c_comp1

@enduml

Выше приведены результаты на изображении ниже:

Как видно, comp3 а также comp4 приятных диагональных линий, соединяющих его с Main component снизу, как и ожидалось. я хочу comp1 а также comp2 иметь одинаковые диагональные линии для подключения к Main component с правой стороны. Как мне это сделать?

Код, сгенерированный PlantUML с опцией -debugsvek:

digraph unix {
nodesep=0.486111;
ranksep=0.833333;
remincross=true;
searchsize=500;
sh0004->sh0006[arrowtail=none,arrowhead=none,minlen=0,color="#000011"];
sh0004->sh0005[arrowtail=none,arrowhead=none,minlen=0,color="#000015"];
sh0004 [shape=rect,label="",width=1.722222,height=0.522352,color="#000004"];
sh0005 [shape=rect,label="",width=0.861111,height=0.522352,color="#000005"];
sh0006 [shape=rect,label="",width=0.750000,height=0.522352,color="#000006"];
sh0007 [shape=rect,label="",width=0.861111,height=0.522352,color="#000007"];
sh0008 [shape=rect,label="",width=0.861111,height=0.522352,color="#000008"];
sh0004->sh0007[arrowtail=none,arrowhead=none,minlen=1,color="#000009"];
sh0004->sh0008[arrowtail=none,arrowhead=none,minlen=1,color="#00000D"];

}

2 ответа

Почему вы используете для c_comp1 а также comp2 один штрих ('-') и для c_comp3 а также c_comp4 двойной тире ('-')?

При использовании для всех двойной тире вроде:

@startuml
'Define the components
[Main component] as c_main_component
[comp1] as c_comp1
[com2] as c_comp2
[comp3] as c_comp3
[comp4] as c_comp4

'Define the relationships
c_main_component -- c_comp3
c_main_component -- c_comp4

c_main_component -- c_comp2
c_main_component -- c_comp1
@enduml

Вы получите более красивое изображение:

исправленное изображение

Я немного повозился и, хотя я не вижу в этом возможности, я все же думаю, что это может дать некоторые моменты для начала. Я нашел эту статью: Как заставить положение узла (х и у) в графвизе

Исходя из этого, я изменил результирующий "файл debugsvek" (cc_svek.dot) на (и сделал некоторые координаты немного другими для упрощения вычислений головой и добавил несколько меток):

digraph unix {
nodesep=0.5;
ranksep=1;
remincross=true;
searchsize=500;
sh0004->sh0006[arrowtail=none,arrowhead=none,minlen=0,color="#000011"];
sh0004->sh0005[arrowtail=none,arrowhead=none,minlen=0,color="#000015"];
sh0004 [pos="1,-1!",shape=rect,label="4",width=1,height=0.5,color="#000004"];
sh0005 [pos="2,-0.75!",shape=rect,label="5",width=1,height=0.5,color="#000005"];
sh0006 [pos="2,-1.25!",shape=rect,label="6",width=1,height=0.5,color="#000006"];
sh0007 [pos="0,-2!",shape=rect,label="7",width=1,height=0.5,color="#000007"];
sh0008 [pos="1,-2!",shape=rect,label="8",width=1,height=0.5,color="#000008"];
sh0004->sh0007[arrowtail=none,arrowhead=none,minlen=1,color="#000009"];
sh0004->sh0008[arrowtail=none,arrowhead=none,minlen=1,color="#00000D"];

}

При использовании команды dot -K fdp -T png cc_svek.dot на нем это приводит к изображению:

введите описание изображения здесь

Другие вопросы по тегам