Guest User

Untitled

a guest
Jun 21st, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. private void MainForm_Paint(object sender, PaintEventArgs e)
  2. {
  3. const int r = 15;
  4. e.Graphics.Clear(SystemColors.Control);
  5. foreach (Node n in this.nodes.Values)
  6. {
  7. // ロックされているノードは赤くする
  8. Brush br = this.nodes.IsLocked(n)
  9. ? Brushes.Red
  10. : Brushes.Green;
  11. // ノードは、n.R を中心とする半径 r の円で表す
  12. e.Graphics.FillEllipse(br,
  13. ToScreenX(n.R.X) - r, ToScreenY(n.R.Y) - r,
  14. 2 * r, 2 * r);
  15. // 円の中にノード名を描く
  16. e.Graphics.DrawString(n.Name,
  17. SystemFonts.DefaultFont, Brushes.White,
  18. ToScreenX(n.R.X) - r / 2, ToScreenY(n.R.Y) - r / 2);
  19. foreach (Node nn in n.Neighbors)
  20. {
  21. // エッジは、ノードの中心をつなぐ直線で表す
  22. e.Graphics.DrawLine(Pens.Black,
  23. ToScreenX(n.R.X), ToScreenY(n.R.Y),
  24. ToScreenX(nn.R.X), ToScreenY(nn.R.Y));
  25. }
  26. }
  27. }
Add Comment
Please, Sign In to add comment