私の GUI は、データベース スクリプトの ERM を描画します。たとえば 2 つのエンティティの参照にあるデータベースの内容は、線で接続されます。しかし、これらの線はすべて交差しています。各線は別の線をまたいでいます。だから私の質問は、どうすればこの線をプロのように描くことができるかということです. ここでは、これらの線を描画するクラスを確認できます。
class GuiReferenceModel
{
int _xPos=0;
int _yPos=0;
GuiEntityModel _guiEM = null;
HelperClass _helperClass;
FieldModel _fm = null;
Pen _pen;
public GuiReferenceModel(FieldModel fm, GuiEntityModel guiEM)
{
_fm = fm;
_guiEM = guiEM;
_helperClass = new HelperClass();
_pen = new Pen(Color.HotPink, 5);
}
public void Draw(Graphics gc, List<GuiEntityModel> GuiEntitys)
{
_xPos=_guiEM.getXPos()+_guiEM.getWidth();
_yPos=_guiEM.getYPos()+(_guiEM.getHeight()/2);
foreach (GuiEntityModel gem in GuiEntitys)
{
if (gem.GetName() == _fm.ReferencedField)
{
gc.DrawLine(_pen, _xPos, _yPos, gem.getXPos(), (gem.getYPos()+gem.getHeight()/2));
}
}
}
}
助けてくれてありがとう:D