using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Test
{
public partial class Form1 : Form
{
int circleDiameter;
public Form1()
{
InitializeComponent();
circleDiameter = 100;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Point CenterPoint = new Point()
{
X = this.ClientRectangle.Width / 2,
Y = this.ClientRectangle.Height / 2
};
Point topLeft = new Point()
{
X = (this.ClientRectangle.Width - circleDiameter) / 2,
Y = (this.ClientRectangle.Height - circleDiameter) / 2
};
Point topRight = new Point()
{
X = (this.ClientRectangle.Width + circleDiameter) / 2,
Y = (this.ClientRectangle.Height - circleDiameter) / 2
};
Point bottomLeft = new Point()
{
X = (this.ClientRectangle.Width - circleDiameter) / 2,
Y = (this.ClientRectangle.Height + circleDiameter) / 2
};
Point bottomRight = new Point()
{
X = (this.ClientRectangle.Width + circleDiameter) / 2,
Y = (this.ClientRectangle.Height + circleDiameter) / 2
};
e.Graphics.DrawEllipse(Pens.Red,topLeft.X, topLeft.Y, circleDiameter, circleDiameter);
e.Graphics.DrawLine(Pens.Red, CenterPoint, topLeft);
e.Graphics.DrawLine(Pens.Red, CenterPoint, topRight);
e.Graphics.DrawLine(Pens.Red, CenterPoint, bottomLeft);
e.Graphics.DrawLine(Pens.Red, CenterPoint, bottomRight);
}
}
}
結果は、フォームの中央とXの内側に円がありますが、Xは円の境界から外れているので、topLeft topRightbottomLeftbottomRightの内側のXが正確に円の境界に到達するようにします。どうすれば修理できますか?
e.Graphics.DrawEllipseになる前は、e.Graphics.DrawRectangleで問題ありませんでしたが、DrawEllipseに変更すると、内側のXが円の境界線から外れます。