using System;
using System.Drawing;
using System.Drawing.Drawing2D;
namespace GraphicalCS
{
///
/// MousePoint 的摘要说明。
///
public class MousePoint
{
private Point pStart;
private Point pEnd;
private Point pRealStart;
private Point pRealEnd;
private Size pRealSize;
private Rectangle pRect;
private GraphicsPath pPath;
public MousePoint(int X, int Y)
{
//
// TODO: 在此处添加构造函数逻辑
//
pStart.X = X;
pStart.Y = Y;
pEnd.X = X;//Point.Empty;
pEnd.Y = Y;
pRealStart = Point.Empty;
pRealEnd = Point.Empty;
pRealSize = Size.Empty;
pRect = Rectangle.Empty;
}
public int EndX
{
set
{
pEnd.X = value;
}
get
{
return pEnd.X;
}
}
public int EndY
{
set
{
pEnd.Y = value;
}
get
{
return pEnd.Y;
}
}
public Point StartP
{
get
{
//ChangeToReal();
if(pRealStart == Point.Empty)return pStart;
return pRealStart;
}
}
public Point EndP
{
get
{
//ChangeToReal();
if(pRealEnd == Point.Empty)return pEnd;
return pRealEnd;
}
}
public Size newSize
{
get
{
return pRealSize;
}
}
public Rectangle Rect
{
get
{
ChangeToReal();
pRect.Location=pRealStart;
pRect.Size= pRealSize;
return pRect;
}
}
public GraphicsPath Path
{
set
{
pPath = value;
}
get
{
return pPath;
}
}
//矩形橡皮筋
private void ChangeToReal()
{
//In first quadrant
if ((pEnd.X>pStart.X) && (pEnd.Y>pStart.Y))
{
pRealStart = pStart;
pRealEnd = pEnd;
pRealSize = new Size(pRealEnd.X-pRealStart.X, pRealEnd.Y-pRealStart.Y);
return;
}
//In second quadrant
if ((pEnd.XpStart.Y))
{
pRealStart.X = pEnd.X;
pRealStart.Y = pStart.Y;
pRealEnd.X = pStart.X;
pRealEnd.Y = pEnd.Y;
pRealSize = new Size(pRealEnd.X-pRealStart.X, pRealEnd.Y-pRealStart.Y);
return;
}
//In forth quadrant
if ((pEnd.X>pStart.X) && (pEnd.Y