cline.cs

来自「苏金明编写的《用VB.NET和VC#.NET开发交互式CAD系统》一书的源代码」· CS 代码 · 共 71 行

CS
71
字号
using System;
using System.Drawing;
using System.Drawing.Drawing2D;

namespace template
{
	/// <summary>
	/// CLine 的摘要说明。
	/// </summary>
	public class CLine:GESelecter
	{
		private PointF m_Begin,m_End;

		public PointF LBegin
		{
			get{return m_Begin;}
			set{m_Begin=value;}
		}

		public PointF LEnd
		{
			get{return m_End;}
			set{m_End=value;}
		}

		public CLine()
		{
		}

		public CLine(PointF pBegin,PointF pEnd)
		{
			m_Begin=pBegin;
			m_End=pEnd;
		}

		//绘直线段
		public override void Draw(Graphics g, geDrawMode aDrawMode)
		{
			Pen pen = DrawSettings(aDrawMode);
			g.DrawLine(pen, m_Begin.X, m_Begin.Y, m_End.X, m_End.Y);
		}

		//拾取直线段
		public override bool Pick( PointF aPos)
		{
			Console.WriteLine("yes");
			GraphicsPath gp=new GraphicsPath();
			gp.AddLine(m_Begin, m_End);
			RectangleF rect=gp.GetBounds();
			if (rect.Contains(aPos))
			{
				if (gp.IsOutlineVisible(aPos, Pens.Black))
				{
					gp.Dispose();
					return true;
				}
				else
				{
					gp.Dispose();
					return false;
				}
			}
			else
			{
				gp.Dispose();
				return false;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?