using System;
//...
using DSComplexLib.Calculation;
using DSComplexLib.Visualization;
namespace DSComplexLibDemo
{
public partial class Form1 : Form
{
ComplexPlane cPlane;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
cPlane = new ComplexPlane(this.CreateGraphics());
cPlane.SetSmoothingMode(SmoothingMode.AntiAlias); //Enable Antialiasing
Pen AuxiliaryPen = new Pen(Color.LightGray, 1);
AuxiliaryPen.DashStyle = DashStyle.Dot; //Make auxiliary raster lines gray dotted
cPlane.SetAuxiliaryRasterPen(AuxiliaryPen);
cPlane.AddCircle(Circle.UnitCircle); //Show
unit circle
cPlane.AddCircle(new Circle(Pens.Black, Math.Sqrt(2))); //Show circle with radius Sqrt(2)
ComplexPhasorGroup g1 = new ComplexPhasorGroup("Group 1", false); //Create phasor group
g1.AddPhasor(new ComplexPhasor(new ComplexNumber(1, 1), Pens.Red, "Phasor 1", true, true, ContentAlignment.TopLeft, false, ContentAlignment.BottomLeft, new Font("Verdana", 10), Brushes.Red)); //Add phasor
g1.AddPhasor(new ComplexPhasor(new ComplexNumber(1, -1), Pens.Blue, "Phasor 2", true, true, ContentAlignment.BottomLeft, false, ContentAlignment.TopLeft, new Font("Verdana", 10), Brushes.Blue));
cPlane.AddPhasorGroup(g1); //Add phasor group to complex plane
ComplexPhasorGroup g2 = new ComplexPhasorGroup("Group 2", true); //Create phasor group where phasors are added graphically
g2.AddPhasor(new ComplexPhasor(new ComplexNumber(-1, -1), Pens.Green, "Phasor 3", true, true, ContentAlignment.BottomRight, false, ContentAlignment.TopRight, new Font("Verdana", 10), Brushes.Green));
g2.AddPhasor(new ComplexPhasor(new ComplexNumber(0, 2), Pens.Purple, "Phasor 4", true, true, ContentAlignment.MiddleLeft, false, ContentAlignment.MiddleRight, new Font("Verdana", 10), Brushes.Purple));
cPlane.AddPhasorGroup(g2);
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
cPlane.Render(this.ClientSize.Width, this.ClientSize.Height); //Redraw
}
private void Form1_Resize(object sender, EventArgs e)
{
Form1_Paint(sender, null); //Redraw when size of window changes
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (((MouseEventArgs)e).Button == MouseButtons.Left) //When moving mouse and left button is pressed...
cPlane.StretchSelectedPhasor(((MouseEventArgs)e).Location); //...stretch currently selected phasor
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
cPlane.SelectPhasor(((MouseEventArgs)e).Location);
}
}
}