110,502
社区成员
发帖
与我相关
我的任务
分享
PointF p = PointF.Empty;
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
var o = new Point(Width / 2, Height / 2);
var g = e.Graphics;
g.DrawLine(Pens.Red, o.X, o.Y - 5, o.X, o.Y + 5);
g.DrawLine(Pens.Red, o.X - 5, o.Y, o.X + 5, o.Y);
if (p != PointF.Empty)
{
var w = Math.Abs(p.X - o.X);
var h = Math.Abs(p.Y - o.Y);
g.DrawRectangle(Pens.Red, o.X - w, o.Y - h, w + w, h + h);
g.DrawEllipse(Pens.Red, o.X - w, o.Y - h, w + w, h + h);
var k = (float)Math.Sqrt(2);
var a = k * w;
var b = k * h;
g.DrawEllipse(Pens.Green, o.X - a, o.Y - b, a + a, b + b);
}
}
protected override void OnMouseMove(MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
p = e.Location;
Invalidate();
}
}