コード例 #1
0
        private void DrawOrigin(Graphics g)
        {
            var drawFont  = new Font("Arial", 32);
            var drawBrush = new SolidBrush(Color.Green);

            g.DrawString($"{Origin.ConvertTo(MeasurementUnit.Milimeter).X}; {Origin.ConvertTo(MeasurementUnit.Milimeter).Y}", drawFont, drawBrush, new PointF(0, 0));
        }
コード例 #2
0
        private void DrawGrid(Graphics g)
        {
            var viewRect = ViewRect;
            var rect     = Simulation.SimulationArea.Area.ConvertTo(MeasurementUnit.Milimeter);

            var l = (float)rect.Left.Value + (float)(Math.Ceiling((viewRect.Left.Value - (float)rect.Left.Value) / 100F) * 100F);
            var t = (float)rect.Top.Value + (float)(Math.Ceiling((viewRect.Top.Value - (float)rect.Top.Value) / 100F) * 100F);
            var r = (float)rect.Right.Value - (float)(Math.Ceiling((viewRect.Right.Value - (float)rect.Right.Value) / 100F) * 100F);
            var b = (float)rect.Bottom.Value - (float)(Math.Ceiling((viewRect.Bottom.Value - (float)rect.Bottom.Value) / 100F) * 100F);

            var pen = new Pen(Color.FromArgb(255, 160, 160, 160))
            {
                DashStyle = System.Drawing.Drawing2D.DashStyle.DashDot
            };
            var drawFont  = new Font("Arial", 32);
            var drawBrush = new SolidBrush(Color.Gray);

            while (t <= b)
            {
                if (t >= viewRect.Top.Value && t <= viewRect.Bottom.Value)
                {
                    g.DrawLine(pen, new PointF((float)viewRect.Left.Value, t), new PointF((float)viewRect.Right.Value, t));
                    g.DrawString(t.ToString(), drawFont, drawBrush, new PointF(-(float)Origin.ConvertTo(MeasurementUnit.Milimeter).X, t));
                }

                t += 100F;
            }

            while (l <= r)
            {
                if (l >= viewRect.Left.Value && l <= viewRect.Right.Value)
                {
                    g.DrawLine(pen, new PointF(l, (float)viewRect.Top.Value), new PointF(l, (float)viewRect.Bottom.Value));
                    g.DrawString(l.ToString(), drawFont, drawBrush, new PointF(l, -(float)Origin.ConvertTo(MeasurementUnit.Milimeter).Y));
                }

                l += 100F;
            }
        }