UMLet 中的 UML 2 序列图符号?
UML 2 sequence diagram symbols in UMLet?
我想知道是否有可能在 UMLet 中表示序列图的 UML2 Boundary/Control/Entity 符号? (http://www.uml.org.cn/oobject/images/seq02.gif)
我必须自己编写他们的 java 代码还是它已经存在于某处?
我不确定你指的是 Sequence 还是 Sequence all-in-one。
虽然不支持这些新的生命线,但您可以轻松地向前者添加自定义元素。这里有一个关于如何添加新元素的简单易用的教程 http://www.umlet.com/ce/ce.htm
如果您想将它添加到一体机中,则需要深入研究内部结构,因为它还需要更改文本解析器。
这是我用来在 UMLet 中创建边界符号的片段。您可以根据需要进行更改。
int h = height - textHeight() * textlines.size();
int radius = h/2;
drawCircle(width-radius, radius, radius);
drawLine(0, 10, 0, h-10);
drawLine(0, radius, width-h, radius);
int y = textHeight()+5;
for(String textline : textlines) {
printCenter(textline, height-3);
}
预览:
所以我做了一些基于诺亚自己的模型。它远不是专业的东西,而且是非常肮脏的代码,但我猜它在一段时间内起到了作用。因此,如果在 UMLet 中更好地实现这些符号之前有人遇到过与我相同的问题:
实体:
int h = height - textHeight() * textlines.size();
int radius = h*2/5;
int w = radius*2 ;
double x = (width - w)/2 + radius ;
double y = h/10 + radius;
double x2 = x + radius/4 * Math.sqrt(3);
double y2 = y - radius/4 ;
drawCircle((int)x, (int) y, radius);
drawLine((int)x-radius , (int)y + radius , (int) x+ radius, (int) y+radius);
drawLine((int)x - radius , (int) y - 2*radius , (int) x + radius, (int) y - 2*radius);
for(String textline : textlines) {
printCenter(textline, h);
}
控制:
int h = height - textHeight() * textlines.size();
int radius = h*2/5;
int w = radius*2 ;
double x1 = (width - w)/2 + radius ;
double y1 = h/10;
double x2 = x1 + radius/4 * Math.sqrt(3);
double y2 = y1 - radius/4 ;
double x3 = x1 + radius/4 * Math.sqrt(3);
double y3 = y1 + radius/4;
drawCircle((int)x1, (int) y1+radius, radius);
drawLine((int)x1, (int) y1 , (int)x2, (int)y2);
drawLine((int)x1, (int) y1 , (int)x3, (int)y3);
int y = textHeight()+5;
for(String textline : textlines) {
printCenter(textline, h);
}
我想知道是否有可能在 UMLet 中表示序列图的 UML2 Boundary/Control/Entity 符号? (http://www.uml.org.cn/oobject/images/seq02.gif)
我必须自己编写他们的 java 代码还是它已经存在于某处?
我不确定你指的是 Sequence 还是 Sequence all-in-one。
虽然不支持这些新的生命线,但您可以轻松地向前者添加自定义元素。这里有一个关于如何添加新元素的简单易用的教程 http://www.umlet.com/ce/ce.htm
如果您想将它添加到一体机中,则需要深入研究内部结构,因为它还需要更改文本解析器。
这是我用来在 UMLet 中创建边界符号的片段。您可以根据需要进行更改。
int h = height - textHeight() * textlines.size();
int radius = h/2;
drawCircle(width-radius, radius, radius);
drawLine(0, 10, 0, h-10);
drawLine(0, radius, width-h, radius);
int y = textHeight()+5;
for(String textline : textlines) {
printCenter(textline, height-3);
}
预览:
所以我做了一些基于诺亚自己的模型。它远不是专业的东西,而且是非常肮脏的代码,但我猜它在一段时间内起到了作用。因此,如果在 UMLet 中更好地实现这些符号之前有人遇到过与我相同的问题:
实体:
int h = height - textHeight() * textlines.size();
int radius = h*2/5;
int w = radius*2 ;
double x = (width - w)/2 + radius ;
double y = h/10 + radius;
double x2 = x + radius/4 * Math.sqrt(3);
double y2 = y - radius/4 ;
drawCircle((int)x, (int) y, radius);
drawLine((int)x-radius , (int)y + radius , (int) x+ radius, (int) y+radius);
drawLine((int)x - radius , (int) y - 2*radius , (int) x + radius, (int) y - 2*radius);
for(String textline : textlines) {
printCenter(textline, h);
}
控制:
int h = height - textHeight() * textlines.size();
int radius = h*2/5;
int w = radius*2 ;
double x1 = (width - w)/2 + radius ;
double y1 = h/10;
double x2 = x1 + radius/4 * Math.sqrt(3);
double y2 = y1 - radius/4 ;
double x3 = x1 + radius/4 * Math.sqrt(3);
double y3 = y1 + radius/4;
drawCircle((int)x1, (int) y1+radius, radius);
drawLine((int)x1, (int) y1 , (int)x2, (int)y2);
drawLine((int)x1, (int) y1 , (int)x3, (int)y3);
int y = textHeight()+5;
for(String textline : textlines) {
printCenter(textline, h);
}