private void DrawLinkLine(int x1, int y1, int x2, int y2, LinkType LType)
  {
    Graphics g = getGraphics();
    Point p1 = new Point(x1 * this.W + this.W / 2 + this.W, y1 * this.W + this.W / 2 + this.W);
    Point p2 = new Point(x2 * this.W + this.W / 2 + this.W, y2 * this.W + this.W / 2 + this.W);
    if (LType == LinkType.LineType)
      g.drawLine(p1.x, p1.y, p2.x, p2.y);
    if (LType == LinkType.OneCornerType)
    {
      Point pixel_z1 = new Point(this.z1.x * this.W + this.W / 2 + this.W, this.z1.y * this.W + this.W / 2 + this.W);
      g.drawLine(p1.x, p1.y, pixel_z1.x, pixel_z1.y);
      g.drawLine(pixel_z1.x, pixel_z1.y, p2.x, p2.y);
    }
    if (LType == LinkType.TwoCornerType)
    {
      Point pixel_z1 = new Point(this.z1.x * this.W + this.W / 2 + this.W, this.z1.y * this.W + this.W / 2 + this.W);
      Point pixel_z2 = new Point(this.z2.x * this.W + this.W / 2 + this.W, this.z2.y * this.W + this.W / 2 + this.W);
      if ((p1.x != pixel_z2.x) && (p1.y != pixel_z2.y))
      {
        Point c = pixel_z1;
        pixel_z1 = pixel_z2;
        pixel_z2 = c;
      }
      g.drawLine(p1.x, p1.y, pixel_z2.x, pixel_z2.y);
      g.drawLine(pixel_z2.x, pixel_z2.y, pixel_z1.x, pixel_z1.y);
      g.drawLine(pixel_z1.x, pixel_z1.y, p2.x, p2.y);
    }
  }