DrawPointManager.cs 6.2 KB
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TSA_V.DeviceLibrary;

namespace TSA_V
{
    public  class DrawPointManager
    {


        public  static  void DrawPoint(Graphics g, ProjectorPInfo p,Color color)
        { 
            if (p.SizeX < 2)
            {
                p.SizeX = 2;
            }
            if (p.SizeY < 2)
            {
                p.SizeY = 2;
            }
            int lineLength = 2;
            int x =(int) p.PX;
            int y =(int)p.PY;
            Pen pen = new Pen(color, p.PenWidth);

            System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(color);
            //点类型,1 = 点,2 = +,3 =|,4 = -,5 = 方形,6 = 圆圈
            if (p.PType.Equals(2))
            {
                g.DrawLine(pen, new Point(x - p.SizeX, y), new Point(x + p.SizeX, y));
                g.DrawLine(pen, new Point(x, y - p.SizeY), new Point(x, y + p.SizeY));
            }
            else if (p.PType.Equals(3))
            {
                g.DrawLine(pen, new Point(x, y - p.SizeY), new Point(x, y + p.SizeY));
            }
            else if (p.PType.Equals(4))
            {
                g.DrawLine(pen, new Point(x - p.SizeX, y), new Point(x + p.SizeX, y));
            }
            else if (p.PType.Equals(5))
            {
                g.DrawRectangle(pen, x - p.SizeX / 2, y - p.SizeY / 2, p.SizeX, p.SizeY);
            }
            else if (p.PType.Equals(6))
            {
                g.DrawEllipse(pen, x - p.SizeX / 2, y - p.SizeY / 2, p.SizeX, p.SizeY);
            }
            else if (p.PType > 6)
            {
                g.DrawEllipse(pen, x - p.SizeX / 2, y - p.SizeY / 2, p.SizeX, p.SizeY);
            }
            else
            {
                g.FillEllipse(myBrush, new Rectangle(x - p.SizeX / 2, y - p.SizeY / 2, p.SizeX, p.SizeY));//画实心椭圆          
            }
            if (p.PolaritiesType.Equals(0))
            {

            }
            else if (p.PolaritiesType.Equals(1))
            {
                //p.SizeX = 12;
                //p.SizeY = 36;
                int plusSize = p.SizeX / 2;
                int pX = x;
                int pY = y - p.SizeY / 2 - lineLength - plusSize;
                g.DrawLine(pen, new Point(pX - plusSize, pY), new Point(pX + plusSize, pY));
                g.DrawLine(pen, new Point(pX, pY - plusSize), new Point(pX, pY + plusSize));
            }
            else if (p.PolaritiesType.Equals(2))
            {
                //p.SizeX = 12;
                //p.SizeY = 36;
                int plusSize = p.SizeX / 2;
                int pX = x;
                int pY = y + p.SizeY / 2 + lineLength + plusSize;
                g.DrawLine(pen, new Point(pX - plusSize, pY), new Point(pX + plusSize, pY));
                g.DrawLine(pen, new Point(pX, pY - plusSize), new Point(pX, pY + plusSize));
            }
            else if (p.PolaritiesType.Equals(3))
            {
                //p.SizeX = 12;
                //p.SizeY = 36;

                int plusSize = p.SizeY / 2;
                int pX = x - p.SizeX / 2 - lineLength - plusSize;
                int pY = y;
                g.DrawLine(pen, new Point(pX - plusSize, pY), new Point(pX + plusSize, pY));
                g.DrawLine(pen, new Point(pX, pY - plusSize), new Point(pX, pY + plusSize));
            }
            else if (p.PolaritiesType.Equals(4))
            {
                //p.SizeX = 12;
                //p.SizeY = 36;

                int plusSize = p.SizeY / 2;
                int pX = x + p.SizeX / 2 + lineLength + plusSize;
                int pY = y;
                g.DrawLine(pen, new Point(pX - plusSize, pY), new Point(pX + plusSize, pY));
                g.DrawLine(pen, new Point(pX, pY - plusSize), new Point(pX, pY + plusSize));
            }
            else if (p.PolaritiesType.Equals(5))
            {
                //p.SizeX = 12;
                //p.SizeY = 36;
                int plusSize = p.SizeX / 2;
                int pX = x - 6;
                int pY = y - p.SizeY / 2 - lineLength - plusSize;
                g.DrawLine(pen, new Point(pX - plusSize, pY), new Point(pX + plusSize, pY));
                g.DrawLine(pen, new Point(pX, pY - plusSize), new Point(pX, pY + plusSize));

            }
            else if (p.PolaritiesType.Equals(6))
            {
                //p.SizeX = 12;
                //p.SizeY = 36;
                int plusSize = p.SizeX / 2;
                int pX = x + 6;
                int pY = y - p.SizeY / 2 - lineLength - plusSize;
                g.DrawLine(pen, new Point(pX - plusSize, pY), new Point(pX + plusSize, pY));
                g.DrawLine(pen, new Point(pX, pY - plusSize), new Point(pX, pY + plusSize));

            }
            else if (p.PolaritiesType.Equals(6))
            {
                //p.SizeX = 12;
                //p.SizeY = 36;
                int plusSize = p.SizeX / 2;
                int pX = x + 6;
                int pY = y - p.SizeY / 2 - lineLength - plusSize;
                g.DrawLine(pen, new Point(pX - plusSize, pY), new Point(pX + plusSize, pY));
                g.DrawLine(pen, new Point(pX, pY - plusSize), new Point(pX, pY + plusSize));

            }
            else if (p.PolaritiesType.Equals(7))
            {
                //p.SizeX = 12;
                //p.SizeY = 36;

                int plusSize = p.SizeX / 2;
                int pX = x - 6;
                int pY = y + p.SizeY / 2 + lineLength + plusSize;
                g.DrawLine(pen, new Point(pX - plusSize, pY), new Point(pX + plusSize, pY));
                g.DrawLine(pen, new Point(pX, pY - plusSize), new Point(pX, pY + plusSize));
            }
            else if (p.PolaritiesType.Equals(8))
            {
                //p.SizeX = 12;
                //p.SizeY = 36;

                int plusSize = p.SizeX / 2;
                int pX = x + 6;
                int pY = y + p.SizeY / 2 + lineLength + plusSize;
                g.DrawLine(pen, new Point(pX - plusSize, pY), new Point(pX + plusSize, pY));
                g.DrawLine(pen, new Point(pX, pY - plusSize), new Point(pX, pY + plusSize));
            }

        }
    }
}