form1.cs

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

CS
119
字号
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace 图元求交
{
	/// <summary>
	/// Form1 的摘要说明。
	/// </summary>
	public class Form1 : System.Windows.Forms.Form
	{
		/// <summary>
		/// 必需的设计器变量。
		/// </summary>
		private System.ComponentModel.Container components = null;

		private Module m=new Module();

		public Form1()
		{
			//
			// Windows 窗体设计器支持所必需的
			//
			InitializeComponent();

			//
			// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
			//
		}

		/// <summary>
		/// 清理所有正在使用的资源。
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Windows Form Designer generated code
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{
			this.components = new System.ComponentModel.Container();
			this.Size = new System.Drawing.Size(300,300);
			this.Text = "Form1";
		}
		#endregion

		/// <summary>
		/// 应用程序的主入口点。
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new Form1());
		}

		private ArrayList lines=new ArrayList();

		protected override void OnPaint(PaintEventArgs e)
		{
			Graphics g= e.Graphics;
			g.FillRectangle(Brushes.White, this.ClientRectangle);
			Draw(g);
		}

		private void Draw(Graphics g)
		{
			CLine line1=new CLine(new PointF(10, 10), new PointF(500, 400));
			CLine line2=new CLine(new PointF(20, 300), new PointF(400, 50));
			line1.Draw(g, Pens.Red);
			line2.Draw(g, Pens.Blue);
			float[] intersec= m.LineLine(line1, line2);
			PointF newP=new PointF(intersec[1], intersec[2]);

			CLine line3=new CLine(line1.LBegin, newP);
			CLine line4=new CLine(newP, line1.LEnd);
			CLine line5=new CLine(line2.LBegin, newP);
			CLine line6=new CLine(newP, line2.LEnd);

			lines.Add(line3);
			lines.Add(line4);
			lines.Add(line5);
			lines.Add(line6);
		}

		protected override void OnMouseMove( MouseEventArgs e)
		{
			Graphics g= this.CreateGraphics();
			GraphicsPath gp=new GraphicsPath();
			Pen pen1=new Pen(Color.White);
			Pen pen=new Pen(Color.Green);
			pen.DashStyle = DashStyle.DashDot;
			for (int i = 0 ;i<=lines.Count - 1;i++)
			{
				if ((CLine)(lines[i]).Pick(new Point(e.X, e.Y)))
			    {
					((CLine)(lines[i])).Draw(g, pen1);
					((CLine)(lines[i])).Draw(g, pen);
				}
			}
		}
	}
}

⌨️ 快捷键说明

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