|
@@ -5,7 +5,7 @@ using System.Drawing.Drawing2D;
|
|
|
using System.Net;
|
|
|
using System.Numerics;
|
|
|
using System.Windows.Forms;
|
|
|
-using unvell.D2DLib;
|
|
|
+
|
|
|
|
|
|
namespace OTSMeasureApp
|
|
|
{
|
|
@@ -231,9 +231,7 @@ namespace OTSMeasureApp
|
|
|
//文字
|
|
|
else if (createType == CreateRectangleType.Text)
|
|
|
{
|
|
|
- //设置文字对齐方式
|
|
|
- //if (m_RegionF.Height > 150)//won't display when it's too small
|
|
|
- //{
|
|
|
+ //设置文字对齐方式
|
|
|
StringFormat sf = new StringFormat();
|
|
|
sf.Alignment = StringAlignment.Center;
|
|
|
sf.LineAlignment = StringAlignment.Center;
|
|
@@ -256,7 +254,7 @@ namespace OTSMeasureApp
|
|
|
|
|
|
e.Graphics.DrawString(strContent, font, sampleBrush, m_RegionF, sf);
|
|
|
|
|
|
- //}
|
|
|
+
|
|
|
|
|
|
}
|
|
|
//矩形
|
|
@@ -532,456 +530,7 @@ namespace OTSMeasureApp
|
|
|
|
|
|
}
|
|
|
}
|
|
|
- public virtual void OnRender(D2DGraphics g)
|
|
|
- {
|
|
|
- if (createType == CreateRectangleType.SampleBackGround_Rectangle)
|
|
|
- {
|
|
|
- //获取颜色
|
|
|
- Color myColor = OTSSamplespaceGraphicsPanelFun.GetColorValue(ColorType.RoundRectangleColor);
|
|
|
-
|
|
|
- System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
|
|
|
- GraphicsPath grPath = CreateRoundedRectanglePath(m_RegionF, 20);
|
|
|
- //e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
|
|
|
-
|
|
|
- //g.FillPath(sampleBrush, grPath);
|
|
|
- //e.Graphics.DrawPath(Pens.Black, grPath);
|
|
|
- var device=g.Device;
|
|
|
- var brush = device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- //D2DBrush brush=new D2DBrush(sampleBrush);
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- var pen = device.CreatePen(D2DColor.FromGDIColor(myColor));
|
|
|
- g.DrawFillRectangle(ref rect, brush, pen, 1);
|
|
|
- }
|
|
|
- //样品台-圆形
|
|
|
- else if (createType == CreateRectangleType.SampleBackGround_Circle)
|
|
|
- {
|
|
|
- //获取颜色
|
|
|
- Color myColor = OTSSamplespaceGraphicsPanelFun.GetColorValue(ColorType.SampleBackGroundColor);
|
|
|
-
|
|
|
- System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
|
|
|
- //e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; //图片柔顺模式选择
|
|
|
- //e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;//高质量
|
|
|
- //e.Graphics.CompositingQuality = CompositingQuality.HighQuality;//再加一点
|
|
|
- //e.Graphics.FillEllipse(sampleBrush, m_RegionF);
|
|
|
- //e.Graphics.DrawEllipse(Pens.Black, m_RegionF);
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var pen = g.Device.CreatePen(D2DColor.FromGDIColor(myColor));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- D2DEllipse ell = new D2DEllipse(rect);
|
|
|
- g.FillEllipse(ell, brush);
|
|
|
- g.DrawEllipse(ell, D2DColor.FromGDIColor(myColor));
|
|
|
- }
|
|
|
- //圆形
|
|
|
- else if (createType == CreateRectangleType.Circle)
|
|
|
- {
|
|
|
- //System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(System.Drawing.Color.White);
|
|
|
- //e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; //图片柔顺模式选择
|
|
|
- //e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;//高质量
|
|
|
- //e.Graphics.CompositingQuality = CompositingQuality.HighQuality;//再加一点
|
|
|
- //e.Graphics.FillEllipse(sampleBrush, m_RegionF);
|
|
|
- //e.Graphics.DrawEllipse(Pens.Black, m_RegionF);
|
|
|
-
|
|
|
-
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(Color.White));
|
|
|
- var pen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- D2DEllipse ell = new D2DEllipse(rect);
|
|
|
- g.FillEllipse(ell, brush);
|
|
|
- g.DrawEllipse(ell, D2DColor.FromGDIColor(Color.White));
|
|
|
- }
|
|
|
- //文字
|
|
|
- else if (createType == CreateRectangleType.Text)
|
|
|
- {
|
|
|
- //设置文字对齐方式
|
|
|
-
|
|
|
- StringFormat sf = new StringFormat();
|
|
|
- sf.Alignment = StringAlignment.Center;
|
|
|
- sf.LineAlignment = StringAlignment.Center;
|
|
|
- //文字颜色
|
|
|
- Color myColor = OTSSamplespaceGraphicsPanelFun.GetColorValue(ColorType.FontColor);
|
|
|
-
|
|
|
- System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
|
|
|
- SolidBrush solidBrush = new SolidBrush(Color.FromArgb(50, Color.Black));
|
|
|
- //字体大小 根据样品孔Rectangle大小
|
|
|
- float fontSize = m_RegionF.Width / 2;
|
|
|
- Font font = new Font("宋体", fontSize, FontStyle.Regular);
|
|
|
- if (fontSize == 0)
|
|
|
- {
|
|
|
- font = new Font("宋体", 5, FontStyle.Regular);
|
|
|
- }
|
|
|
- //消除锯齿
|
|
|
- //e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; //图片柔顺模式选择
|
|
|
- //e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;//高质量
|
|
|
- //e.Graphics.CompositingQuality = CompositingQuality.HighQuality;//再加一点
|
|
|
-
|
|
|
- //e.Graphics.DrawString(strContent, font, sampleBrush, m_RegionF, sf);
|
|
|
- D2DTextFormat tf = g.Device.CreateTextFormat("宋体", fontSize);
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var pen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- g.DrawText(strContent, brush, tf,rect);
|
|
|
- //}
|
|
|
-
|
|
|
- }
|
|
|
- //矩形
|
|
|
- else if (createType == CreateRectangleType.Rectangle)
|
|
|
- {
|
|
|
- Color myColor = System.Drawing.Color.White;
|
|
|
- System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
|
|
|
- //e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; //图片柔顺模式选择
|
|
|
- //e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;//高质量
|
|
|
- //e.Graphics.CompositingQuality = CompositingQuality.HighQuality;//再加一点
|
|
|
- //e.Graphics.FillRectangle(sampleBrush, m_RegionF);
|
|
|
- var m_Region = new Rectangle();
|
|
|
- m_Region.X = (int)m_RegionF.X;
|
|
|
- m_Region.Y = (int)m_RegionF.Y;
|
|
|
- m_Region.Width = (int)m_RegionF.Width;
|
|
|
- m_Region.Height = (int)m_RegionF.Height;
|
|
|
- //e.Graphics.DrawRectangle(Pens.Black, m_Region);
|
|
|
-
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var pen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- g.DrawRectangle(rect, pen);
|
|
|
- }
|
|
|
- //选择样品台
|
|
|
- else if (createType == CreateRectangleType.SelectSample)
|
|
|
- {
|
|
|
- Color myColor = selColor;
|
|
|
-
|
|
|
- System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
|
|
|
-
|
|
|
- if (Shape == 0)
|
|
|
- {
|
|
|
-
|
|
|
- //e.Graphics.FillEllipse(sampleBrush, m_RegionF);
|
|
|
- //e.Graphics.DrawEllipse(Pens.Black, m_RegionF);
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var pen = g.Device.CreatePen(D2DColor.FromGDIColor(myColor));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- D2DEllipse ell = new D2DEllipse(rect);
|
|
|
- g.FillEllipse(ell, brush);
|
|
|
- g.DrawEllipse(ell, D2DColor.FromGDIColor(myColor));
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- //e.Graphics.FillRectangle(sampleBrush, m_RegionF);
|
|
|
- var m_Region = new Rectangle();
|
|
|
- m_Region.X = (int)m_RegionF.X;
|
|
|
- m_Region.Y = (int)m_RegionF.Y;
|
|
|
- m_Region.Width = (int)m_RegionF.Width;
|
|
|
- m_Region.Height = (int)m_RegionF.Height;
|
|
|
- //e.Graphics.DrawRectangle(Pens.Black, m_Region);
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var pen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- g.FillRectangle(rect,brush);
|
|
|
- g.DrawRectangle(rect, pen);
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- //测试区域
|
|
|
- else if (createType == CreateRectangleType.MeasureArea)
|
|
|
- {
|
|
|
- Color myColor = selColor;
|
|
|
- System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
|
|
|
- Pen p = new Pen(myColor, 1);
|
|
|
- //e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; //图片柔顺模式选择
|
|
|
- //e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;//高质量
|
|
|
- //e.Graphics.CompositingQuality = CompositingQuality.HighQuality;//再加一点
|
|
|
-
|
|
|
-
|
|
|
- if (Shape == 0)
|
|
|
- {
|
|
|
-
|
|
|
- //e.Graphics.DrawEllipse(p, m_RegionF);
|
|
|
-
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var pen = g.Device.CreatePen(D2DColor.FromGDIColor(myColor));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- D2DEllipse ell = new D2DEllipse(rect);
|
|
|
- //g.FillEllipse(ell, brush);
|
|
|
- g.DrawEllipse(ell, D2DColor.FromGDIColor(myColor));
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- var m_Region = new Rectangle();
|
|
|
- m_Region.X = (int)m_RegionF.X;
|
|
|
- m_Region.Y = (int)m_RegionF.Y;
|
|
|
- m_Region.Width = (int)m_RegionF.Width;
|
|
|
- m_Region.Height = (int)m_RegionF.Height;
|
|
|
-
|
|
|
- //e.Graphics.DrawRectangle(p, m_Region);
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var pen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- //g.FillRectangle(rect, brush);
|
|
|
- g.DrawRectangle(rect, pen);
|
|
|
- }
|
|
|
- }
|
|
|
- //绘制帧图 直线
|
|
|
- else if (createType == CreateRectangleType.SingleLine)
|
|
|
- {
|
|
|
- //设置颜色
|
|
|
- Color myColor = OTSSamplespaceGraphicsPanelFun.GetColorValue(ColorType.FieldColor);
|
|
|
-
|
|
|
- //设置画笔
|
|
|
- System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
|
|
|
- Pen pen = new Pen(sampleBrush, 0.0001f);
|
|
|
- //未抗锯齿
|
|
|
- //e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default;
|
|
|
- //e.Graphics.InterpolationMode = InterpolationMode.Default;
|
|
|
- //e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
|
|
|
- //设置直线位置与尺寸
|
|
|
- PointF startPointF = new PointF(startPoint.X, startPoint.Y);
|
|
|
- PointF endPointF = new PointF(endPoint.X, endPoint.Y);
|
|
|
- //度量单位
|
|
|
- //e.Graphics.PageUnit = GraphicsUnit.Display;
|
|
|
- //e.Graphics.DrawLine(pen, startPointF, endPointF);
|
|
|
- var dcolor = D2DColor.FromGDIColor(myColor);
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- g.DrawLine(startPoint.X, startPoint.Y, endPoint.X, endPoint.Y, dcolor);
|
|
|
-
|
|
|
- }
|
|
|
- //绘制标样
|
|
|
- else if (createType == CreateRectangleType.SpecimenRectangle)
|
|
|
- {
|
|
|
- Color myColor = System.Drawing.Color.Black;
|
|
|
- System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
|
|
|
- Pen pen = new Pen(sampleBrush, 0.0001f);
|
|
|
- //e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
|
|
|
- var m_Region = new Rectangle();
|
|
|
- m_Region.X = (int)m_RegionF.X;
|
|
|
- m_Region.Y = (int)m_RegionF.Y;
|
|
|
- m_Region.Width = (int)m_RegionF.Width;
|
|
|
- m_Region.Height = (int)m_RegionF.Height;
|
|
|
- //e.Graphics.DrawRectangle(pen, m_Region);
|
|
|
- //e.Graphics.FillRectangle(sampleBrush, m_Region);
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- g.FillRectangle(rect, brush);
|
|
|
- g.DrawRectangle(rect, dpen);
|
|
|
- }
|
|
|
- //绘制标样
|
|
|
- else if (createType == CreateRectangleType.SpecimenCircle)
|
|
|
- {
|
|
|
- Color myColor = System.Drawing.Color.Black;
|
|
|
- System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
|
|
|
- Pen pen = new Pen(sampleBrush, 0.0001f);
|
|
|
- //e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
|
|
|
- //e.Graphics.DrawEllipse(pen, m_RegionF);
|
|
|
- //e.Graphics.FillEllipse(sampleBrush, m_RegionF);
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(myColor));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- D2DEllipse ell = new D2DEllipse(rect);
|
|
|
- g.FillEllipse(ell, brush);
|
|
|
- g.DrawEllipse(ell, D2DColor.FromGDIColor(myColor));
|
|
|
- }
|
|
|
- //绘制帧图
|
|
|
- else if (createType == CreateRectangleType.FieldRectangle)
|
|
|
- {
|
|
|
- Color myColor = SelColor;
|
|
|
- System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
|
|
|
- Pen pen = new Pen(sampleBrush, 0.01f);
|
|
|
- //e.Graphics.SmoothingMode = SmoothingMode.Default;
|
|
|
- //设置直线位置与尺寸
|
|
|
- PointF startPointF = new PointF(m_RegionF.Left, m_RegionF.Top);
|
|
|
- PointF endPointF = new PointF(m_RegionF.Right, m_RegionF.Bottom);
|
|
|
- if (m_RegionF.Height > 20)//won't display when it's too small,to speed up
|
|
|
- {
|
|
|
- float fontSize = m_RegionF.Width / 4;
|
|
|
- Font font;
|
|
|
- if (fontSize == 0)
|
|
|
- {
|
|
|
- font = new Font("宋体", 5, FontStyle.Regular);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- font = new Font("宋体", fontSize, FontStyle.Regular);
|
|
|
- }
|
|
|
-
|
|
|
- //StringFormat sf = new StringFormat();
|
|
|
- //sf.Alignment = StringAlignment.Center;
|
|
|
- //sf.LineAlignment = StringAlignment.Center;
|
|
|
- D2DTextFormat tf = g.Device.CreateTextFormat("宋体", fontSize);
|
|
|
- var txtbrush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var txtpen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
|
|
|
- var txtrect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- g.DrawText(strContent, txtbrush, tf, txtrect);
|
|
|
- //e.Graphics.DrawString(m_sequenceNum.ToString(), font, sampleBrush, m_RegionF, sf);
|
|
|
- }
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- //绘制帧图
|
|
|
- g.DrawRectangle( startPointF.X, startPointF.Y, endPointF.X ,endPointF.Y, D2DColor.FromGDIColor(myColor));
|
|
|
- }
|
|
|
- //绘制颗粒
|
|
|
- else if (createType == CreateRectangleType.ParticleLine)
|
|
|
- {
|
|
|
- //Color myColor = LineColor;
|
|
|
- //System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
|
|
|
- //Pen pen = new Pen(sampleBrush, 0.01f);
|
|
|
- //e.Graphics.SmoothingMode = SmoothingMode.Default;
|
|
|
- ////设置直线位置与长度
|
|
|
- //PointF startPointF = LineStartPoint;
|
|
|
- //float length = LineLength;
|
|
|
- //PointF endPointF = new PointF(startPointF.X + length, startPointF.Y);
|
|
|
- //e.Graphics.DrawLine(pen, startPointF, endPointF);
|
|
|
- }
|
|
|
- //矩形
|
|
|
- else if (createType == CreateRectangleType.ParticleAreaRectangle)
|
|
|
- {
|
|
|
- //Color myColor = System.Drawing.Color.White;
|
|
|
- //System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
|
|
|
-
|
|
|
- //var m_Region = new Rectangle();
|
|
|
- //m_Region.X = (int)m_RegionF.X;
|
|
|
- //m_Region.Y = (int)m_RegionF.Y;
|
|
|
- //m_Region.Width = (int)m_RegionF.Width;
|
|
|
- //m_Region.Height = (int)m_RegionF.Height;
|
|
|
- //e.Graphics.DrawRectangle(Pens.Black, m_Region);
|
|
|
- }
|
|
|
- //绘制样品孔BSE图像
|
|
|
- else if (createType == CreateRectangleType.DrawFrameOfHoleBSEImage)
|
|
|
- {
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- PointF startPointF = new PointF(m_RegionF.Left, m_RegionF.Top);
|
|
|
- PointF endPointF = new PointF(m_RegionF.Right + 2, m_RegionF.Bottom + 2);
|
|
|
- //绘制样品孔中图像信息
|
|
|
- //if (BSEImage != null)
|
|
|
- //{
|
|
|
- // Image thumbnail = BSEImage.GetThumbnailImage((int)m_RegionF.Width + 2, (int)m_RegionF.Height + 2, null, IntPtr.Zero);
|
|
|
- // e.Graphics.DrawImage(thumbnail, startPointF);/*, startPointF.X, startPointF.Y, endPointF.X - startPointF.X, endPointF.Y - startPointF.Y*/
|
|
|
-
|
|
|
- //}
|
|
|
- if (BSEImage != null)
|
|
|
- {
|
|
|
- var d2dimg = g.Device.CreateBitmapFromGDIBitmap((Bitmap)bseImage);
|
|
|
- //Image thumbnail = BSEImage.GetThumbnailImage((int)m_RegionF.Width + 2, (int)m_RegionF.Height + 2, null, IntPtr.Zero);
|
|
|
- //e.Graphics.DrawImage(thumbnail, startPointF);/*, startPointF.X, startPointF.Y, endPointF.X - startPointF.X, endPointF.Y - startPointF.Y*/
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- g.DrawBitmap(d2dimg, rect);
|
|
|
- }
|
|
|
- }
|
|
|
- else if (createType == CreateRectangleType.DrawSEMCenterPoint)
|
|
|
- {
|
|
|
- Color myColor = System.Drawing.Color.Red;
|
|
|
- System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
|
|
|
-
|
|
|
- //X轴线
|
|
|
- PointF startPointX = semCenterPoint;
|
|
|
- startPointX.X = startPointX.X - 3;
|
|
|
- PointF endPointX = semCenterPoint;
|
|
|
- endPointX.X = endPointX.X + 3;
|
|
|
- //Y轴线
|
|
|
- PointF startPointY = semCenterPoint;
|
|
|
- startPointY.Y = startPointY.Y - 3;
|
|
|
- PointF endPointY = semCenterPoint;
|
|
|
- endPointY.Y = endPointY.Y + 3;
|
|
|
- //绘制XY轴交叉线+
|
|
|
- Pen pen = new Pen(sampleBrush, 0.0001f);
|
|
|
- //e.Graphics.DrawLine(pen, startPointX, endPointX);
|
|
|
- //e.Graphics.DrawLine(pen, startPointY, endPointY);
|
|
|
-
|
|
|
- var dcolor = D2DColor.FromGDIColor(myColor);
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- g.DrawLine(startPointX.X, startPointX.Y, endPointX.X, endPointX.Y, dcolor);
|
|
|
- g.DrawLine(startPointY.X, startPointY.Y, endPointY.X, endPointY.Y, dcolor);
|
|
|
-
|
|
|
- }
|
|
|
- //绘制BSE标记
|
|
|
- else if (createType == CreateRectangleType.DrawBSEElementSignPoint)
|
|
|
- {
|
|
|
- System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Green);
|
|
|
-
|
|
|
- Pen pen = new Pen(sampleBrush, 2f);
|
|
|
- int X = (int)m_OrigineRegionF.X;
|
|
|
- int Y = (int)m_OrigineRegionF.Y;
|
|
|
- //e.Graphics.DrawLine(pen, new Point(X - 8, Y), new Point(X + 8, Y));
|
|
|
- //e.Graphics.DrawLine(pen, new Point(X, Y - 8), new Point(X, Y + 8));
|
|
|
-
|
|
|
-
|
|
|
- var dcolor = D2DColor.FromGDIColor(Color.Green);
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(Color.Green));
|
|
|
- var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- g.DrawLine(X-8,Y, X+8, Y, dcolor);
|
|
|
- g.DrawLine(X, Y-8, X, Y+8, dcolor);
|
|
|
- }
|
|
|
- //绘制多边形测量区域
|
|
|
- else if (createType == CreateRectangleType.Polygon)
|
|
|
- {
|
|
|
-
|
|
|
- Color myColor = selColor;
|
|
|
- //System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
|
|
|
- Pen pen = new Pen(myColor, 1);
|
|
|
- if (GetPolygonPointFList().Count > 0)
|
|
|
- {
|
|
|
- List<PointF> PolygonPointF = new List<PointF>();
|
|
|
- Vector2[] vec=new Vector2[GetPolygonPointFList().Count+1];
|
|
|
- for (int i= 0;i < vec.Length;i++)
|
|
|
- {
|
|
|
- vec[i]=new Vector2( m_PolygonPoints[i].X, m_PolygonPoints[i].Y);
|
|
|
- }
|
|
|
- if (PolygonDrawingEndPoint.X != 0 && PolygonDrawingEndPoint.Y != 0)
|
|
|
- {
|
|
|
- vec[m_PolygonPoints.Count] = new Vector2(PolygonDrawingEndPoint.X, PolygonDrawingEndPoint.Y);
|
|
|
- }
|
|
|
-
|
|
|
- g.DrawLines(vec,D2DColor.FromGDIColor(selColor));
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
- }//多边形测量区域完成标识
|
|
|
- else if (createType == CreateRectangleType.DrawPolygonFinish)
|
|
|
- {
|
|
|
- Color myColor = selColor;
|
|
|
-
|
|
|
- Pen pen = new Pen(myColor, 1);
|
|
|
- var m_Region = new Rectangle();
|
|
|
- m_Region.X = (int)m_RegionF.X;
|
|
|
- m_Region.Y = (int)m_RegionF.Y;
|
|
|
- m_Region.Width = (int)m_RegionF.Width;
|
|
|
- m_Region.Height = (int)m_RegionF.Height;
|
|
|
- //e.Graphics.DrawRectangle(pen, m_Region);
|
|
|
-
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(Color.White));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- //绘制帧图
|
|
|
- g.DrawRectangle(rect,D2DColor.FromGDIColor(myColor));
|
|
|
- }
|
|
|
- //绘制多边形测量区域
|
|
|
- else if (createType == CreateRectangleType.CircleByThreePoints)
|
|
|
- {
|
|
|
- Color myColor = selColor;
|
|
|
-
|
|
|
- Pen p = new Pen(myColor, 1);
|
|
|
-
|
|
|
-
|
|
|
- var m_Region = new Rectangle();
|
|
|
- m_Region.X = (int)m_RegionF.X;
|
|
|
- m_Region.Y = (int)m_RegionF.Y;
|
|
|
- m_Region.Width = (int)m_RegionF.Width;
|
|
|
- m_Region.Height = (int)m_RegionF.Height;
|
|
|
- //e.Graphics.DrawEllipse(p, m_Region);
|
|
|
- var brush = g.Device.CreateSolidColorBrush(D2DColor.FromGDIColor(myColor));
|
|
|
- var dpen = g.Device.CreatePen(D2DColor.FromGDIColor(myColor));
|
|
|
- var rect = new D2DRect(m_RegionF.Left, m_RegionF.Top, m_RegionF.Width, m_RegionF.Height);
|
|
|
- D2DEllipse ell = new D2DEllipse(rect);
|
|
|
- //g.FillEllipse(ell, brush);
|
|
|
- g.DrawEllipse(ell, D2DColor.FromGDIColor(myColor));
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
public Image BSEImage
|
|
|
{
|
|
|
get { return bseImage; }
|