Beispiel #1
0
 /// <summary>Paints the ROI into the supplied window</summary>
 /// <param name="window">HALCON window</param>
 public override void Draw(HalconDotNet.HWindow window)
 {
     window.DispCircle(midR, midC, out_Radius);
     window.DispCircle(midR, midC, inner_Radius);
     window.DispRectangle2(out_Row1, out_Col1, 0, RoiDrawConfig.PaneWidth, RoiDrawConfig.PaneWidth);
     window.DispRectangle2(inner_Row1, inner_Col1, 0, RoiDrawConfig.PaneWidth, RoiDrawConfig.PaneWidth);
     window.DispRectangle2(midR, midC, 0, RoiDrawConfig.PaneWidth, RoiDrawConfig.PaneWidth);
 }
Beispiel #2
0
 /// <summary>Paints the ROI into the supplied window</summary>
 /// <param name="window">HALCON window</param>
 public override void draw(HalconDotNet.HWindow window)
 {
     window.DispCircle(midR, midC, radius);
     window.DispRectangle2(row1, col1, 0, 5, 5);
     //window.DispRectangle2(midR, midC, 0, 5, 5);
     window.DispCross(midR, midC, 10, 0);
 }
Beispiel #3
0
        /// <summary>将ROI绘制到提供的窗口中</summary>
        /// <param name="window">HALCON window</param>
        public override void draw(HalconDotNet.HWindow window)
        {
            window.DispLine(midR + Math.Sin(phi) * length1,
                            midC + Math.Cos(phi) * length1,
                            midR + (Math.Sin(phi) * (length1 + 30)),
                            midC + (Math.Cos(phi) * (length1 + 30)));

            for (int i = 0; i < PointNum; i++)
            {
                window.DispRectangle2(midR + (-length1 + length1 / PointNum + length1 * 2 / PointNum * i) * Math.Sin(phi),
                                      midC + (-length1 + length1 / PointNum + length1 * 2 / PointNum * i) * Math.Cos(phi), -phi, length1 / PointNum, length2);
            }
            window.SetDraw("fill");
            for (int i = 0; i < NumHandles - 1; i++)
            {
                window.DispRectangle2(rows[i].D, cols[i].D, -phi, 10, 10);
            }
            window.DispCircle((midR + Math.Sin(phi) * (length1 + 36)), (midC + Math.Cos(phi) * (length1 + 36)), 12);
            window.SetLineWidth(5);
            window.DispArrow(midR - (Math.Sin(phi - Math.PI / 2) * (length2 - 10)),
                             midC - (Math.Cos(phi - Math.PI / 2) * (length2 - 10)),
                             midR - (Math.Sin(phi - Math.PI / 2) * length2),
                             midC - (Math.Cos(phi - Math.PI / 2) * length2), 2.0);
            window.SetLineWidth(1);
            window.SetDraw("margin");
        }
Beispiel #4
0
        /// <summary>
        /// Paints the active handle of the ROI object into the supplied window
        /// </summary>
        /// <param name="window">HALCON window</param>
        public override void displayActive(HalconDotNet.HWindow window)
        {
            window.SetDraw("margin");
            double num = 5.0;

            if (this.activeHandleIdx < this.row1.TupleLength())
            {
                window.DispRectangle2(this.row1[this.activeHandleIdx].D, this.col1[this.activeHandleIdx].D, 0.0, num, num);
            }
            else if (this.activeHandleIdx < this.row1.TupleLength() + this.row2.TupleLength())
            {
                window.DispCircle(this.row2[this.activeHandleIdx - this.row1.TupleLength()].D,
                                  this.col2[this.activeHandleIdx - this.row1.TupleLength()].D, num);
            }
            else if (this.activeHandleIdx == this.row1.TupleLength() + this.row2.TupleLength())
            {
                window.DispRectangle2(midR, midC, 0, num, num);
            }
            else
            {
                for (int i = 0; i < this.row1.TupleLength() - 1; i++)
                {
                    window.DispLine(this.row1[i].D, this.col1[i].D, this.row1[i + 1].D, this.col1[i + 1].D);
                }
                window.DispLine(this.row1[0].D, this.col1[0].D, this.row1[this.row1.TupleLength() - 1].D,
                                this.col1[this.row1.TupleLength() - 1].D);
            }
        }
        /// <summary>Paints the ROI into the supplied window</summary>
        /// <param name="window">HALCON window</param>
        public override void draw(HalconDotNet.HWindow window)
        {
            //畫個 x
            double crossSize  = 12;
            double crossAngle = 0.785398;

            //Reset line Style
            HOperatorSet.SetLineStyle(window, null);
            if (!_initPointsDone)
            {
                foreach (var dot in _clickedPointsPositionList)
                {
                    HOperatorSet.DispCross(window, dot.RowBegin, dot.ColBegin, crossSize, crossAngle);
                }
            }
            else
            {
                window.DispCircle(midR, midC, radius);

                var w = _HandleRectangleWidth * _ZoomRatio;
                var h = _HandleRectangleHeight * _ZoomRatio;
                window.DispRectangle2(row1, col1, 0, w, h);
                window.DispRectangle2(midR, midC, 0, w, h);
            }
        }
Beispiel #6
0
 /// <summary>Paints the ROI into the supplied window</summary>
 /// <param name="window">HALCON window</param>
 public override void draw(HalconDotNet.HWindow window)
 {
     window.DispCircle(midR, midC, radius);
     if (SizeEnable && ShowRect)
     {
         window.DispRectangle2(row1, col1, 0, 5, 5);
         window.DispRectangle2(midR, midC, 0, 5, 5);
     }
 }
Beispiel #7
0
        /// <summary>Paints the ROI into the supplied window</summary>
        /// <param name="window">HALCON window</param>
        public override void draw(HalconDotNet.HWindow window)
        {
            window.DispCircle(midR, midC, radius);

            var w = _HandleRectangleWidth * _ZoomRatio;
            var h = _HandleRectangleHeight * _ZoomRatio;

            window.DispRectangle2(row1, col1, 0, w, h);
            window.DispRectangle2(midR, midC, 0, w, h);
        }
Beispiel #8
0
 /// <summary>Paints the ROI into the supplied window</summary>
 /// <param name="window">HALCON window</param>
 public override void draw(HalconDotNet.HWindow window, bool include)
 {
     window.SetColor(regionColor);
     window.SetDraw("margin");
     window.DispCircle(midR, midC, radius);
     if (include)
     {
         window.DispRectangle2(row1, col1, 0, 5, 5);
         window.DispRectangle2(midR, midC, 0, 5, 5);
     }
 }
Beispiel #9
0
        /// <summary>绘制圆形坐标在窗体上</summary>
        /// <param name="window">HALCON 窗体</param>
        public override void Draw(HalconDotNet.HWindow window)
        {
            //显示圆
            window.DispCircle(midR, midC, radius);

            int width = GetHandleWidth();

            //显示两个控制框
            window.DispRectangle2(row1, col1, 0, width, width);
            window.DispRectangle2(midR, midC, 0, width, width);
        }
Beispiel #10
0
        /// <summary>
        /// Paints the active handle of the ROI object into the supplied window
        /// </summary>
        public override void displayActive(HalconDotNet.HWindow window)
        {
            switch (activeHandleIdx)
            {
            case 0:

                window.DispCircle(midR, midC, 5);
                window.DispCross(midR, midC, 8, 0);
                break;
            }
        }
        /// <summary>
        /// draw, 決定要畫什麼在 window 上
        /// </summary>
        /// <param name="window">Halcon Window</param>
        public override void draw(HalconDotNet.HWindow window)
        {
            double crossSize  = 12;
            double crossAngle = 0.785398;

            //寫字
            if (!String.IsNullOrEmpty(Name))
            {
                if (!this.IsActive)
                {
                    window.SetColor("red");
                }
                HOperatorSet.SetTposition(window, _model.RowBegin, _model.ColBegin);
                window.WriteString(Name);
            }

            //畫圓
            if (!this.IsActive)
            {
                window.SetColor("magenta");
            }

            window.SetLineWidth(2);
            var radius = _model.Distance / CircleDistanceSetting;

            window.DispCross(_model.RowBegin, _model.ColBegin, crossSize, crossAngle);
            window.DispCircle(_model.RowBegin, _model.ColBegin, radius);

            //畫圓內虛線
            /**/
            window.SetLineWidth(1);
            HTuple dotLineStyle = new HTuple(new int[4] {
                20, 7, 3, 7
            });

            window.SetLineStyle(dotLineStyle);
            var hLineRowBegin = _model.RowBegin;
            var hLineColBegin = _model.ColBegin - radius;
            var hLineRowEnd   = _model.RowBegin;
            var hLineColEnd   = _model.ColBegin + radius;

            var vLineRowBegin = _model.RowBegin - radius;
            var vLineColBegin = _model.ColBegin;
            var vLineRowEnd   = _model.RowBegin + radius;
            var vLineColEnd   = _model.ColBegin;

            window.DispLine(hLineRowBegin, hLineColBegin, hLineRowEnd, hLineColEnd);
            window.DispLine(vLineRowBegin, vLineColBegin, vLineRowEnd, vLineColEnd);

            //Reset line Style
            HOperatorSet.SetLineStyle(window, null);
        }
Beispiel #12
0
        /// <summary>
        ///将ROI对象的活动句柄绘制到提供的窗口中
        /// </summary>
        /// <param name="window">HALCON window</param>
        public override void displayActive(HalconDotNet.HWindow window)
        {
            if (activeHandleIdx != 5)
            {
                window.DispRectangle2(rows[activeHandleIdx].D, cols[activeHandleIdx].D, -phi, 13, 13);
            }

            if (activeHandleIdx == 5)
            {
                window.DispLine(midR + Math.Sin(phi) * length1,
                                midC + Math.Cos(phi) * length1,
                                midR + (Math.Sin(phi) * (length1 + 30)),
                                midC + (Math.Cos(phi) * (length1 + 30)));
                window.DispCircle((midR + Math.Sin(phi) * (length1 + 36)), (midC + Math.Cos(phi) * (length1 + 36)), 15);
            }
        }
Beispiel #13
0
        /// <summary>Paints the ROI into the supplied window</summary>
        /// <param name="window">HALCON window</param>
        public override void draw(HalconDotNet.HWindow window)
        {
            window.SetDraw("margin");
            double num = 5.0;

            for (int i = 0; i < this.row1.TupleLength(); i++)
            {
                if (i < this.row1.TupleLength() - 1)
                {
                    window.DispLine(this.row1[i].D, this.col1[i].D, this.row1[i + 1].D, this.col1[i + 1].D);
                }
                else
                {
                    window.DispLine(this.row1[i].D, this.col1[i].D, this.row1[0].D, this.col1[0].D);
                }
                window.DispRectangle2(this.row1[i].D, this.col1[i].D, 0.0, num, num);
            }
            for (int j = 0; j < this.row2.TupleLength(); j++)
            {
                window.DispCircle(this.row2[j].D, this.col2[j].D, num);
            }
            window.DispRectangle2(midR, midC, 0, 5, 5);
        }
Beispiel #14
0
        /// <summary>Paints the ROI into the supplied window</summary>
        /// <param name="window">HALCON window</param>
        public override void draw(HalconDotNet.HWindow window, int imageWidth, int imageHeight)
        {
            HOperatorSet.SetDraw(window, "margin");
            window.DispCircle(midR, midC, radius);

            double littleRecSize = 0;

            if (imageHeight < 300)
            {
                littleRecSize = 1;
            }
            else if (imageHeight < 600)
            {
                littleRecSize = 2;
            }
            else if (imageHeight < 900)
            {
                littleRecSize = 3;
            }
            else if (imageHeight < 1200)
            {
                littleRecSize = 4;
            }
            else if (imageHeight < 1500)
            {
                littleRecSize = 5;
            }
            else if (imageHeight < 1800)
            {
                littleRecSize = 6;
            }
            else if (imageHeight < 2100)
            {
                littleRecSize = 7;
            }
            else if (imageHeight < 2400)
            {
                littleRecSize = 8;
            }
            else if (imageHeight < 2700)
            {
                littleRecSize = 9;
            }
            else if (imageHeight < 3000)
            {
                littleRecSize = 10;
            }
            else if (imageHeight < 3300)
            {
                littleRecSize = 11;
            }
            else if (imageHeight < 3600)
            {
                littleRecSize = 12;
            }
            else if (imageHeight < 3900)
            {
                littleRecSize = 13;
            }
            else if (imageHeight < 4200)
            {
                littleRecSize = 14;
            }
            else if (imageHeight < 4500)
            {
                littleRecSize = 15;
            }
            else if (imageHeight < 4800)
            {
                littleRecSize = 16;
            }
            else if (imageHeight < 5100)
            {
                littleRecSize = 17;
            }
            else
            {
                littleRecSize = 18;
            }

            if (littleRecSize % 2 != 0)
            {
                littleRecSize++;
            }



            HOperatorSet.SetDraw(window, "fill");

            window.DispRectangle2(row1, col1, 0, littleRecSize, littleRecSize);
            window.DispRectangle2(midR, midC, 0, littleRecSize, littleRecSize);
        }
Beispiel #15
0
 /// <summary>Paints the ROI into the supplied window</summary>
 /// <param name="window">HALCON window</param>
 public override void draw(HalconDotNet.HWindow window)
 {
     window.DispCircle(midR, midC, 5);
     window.DispCross(midR, midC, 8, 0);
 }