/// <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 { //畫弧線 contour.Dispose(); contour.GenCircleContourXld(midR, midC, radius, _startPhi, (_startPhi + _extentPhi), _pointOrder, 1.0); this._beginRow = midR + Math.Sin(_startPhi) * radius; this._beginCol = midC + Math.Cos(_startPhi) * radius; window.DispObj(contour); drawOuterArc(window); //畫控制點 window.DispRectangle2(sizeR, sizeC, 0, 5, 5); window.DispRectangle2(midR, midC, 0, 5, 5); window.DispRectangle2(startR, startC, _startPhi, 10, 2); window.DispObj(arrowHandleXLD); } }
/// <summary>Paints the ROI into the supplied window</summary> /// <param name="window">HALCON window</param> public override void draw(HalconDotNet.HWindow window) { contour.Dispose(); contour.GenCircleContourXld(midR, midC, radius, startPhi, (startPhi + extentPhi), circDir, 1.0); window.DispObj(contour); window.DispRectangle2(sizeR, sizeC, 0, 5, 5); window.DispRectangle2(midR, midC, 0, 5, 5); window.DispRectangle2(startR, startC, startPhi, 10, 2); window.DispObj(arrowHandleXLD); }
/// <summary>Paints the ROI into the supplied window.</summary> public override void draw(HalconDotNet.HWindow window) { window.DispLine(row1, col1, row2, col2); window.DispRectangle2(row1, col1, 0, 5, 5); window.DispObj(arrowHandleXLD); //window.DispRectangle2( row2, col2, 0, 5, 5); window.DispRectangle2(midR, midC, 0, 5, 5); }
/// <summary> /// Repaints the HALCON window 'window' /// </summary> public void repaint(HalconDotNet.HWindow window) { HSystem.SetSystem("flush_graphic", "false"); window.ClearWindow(); window.DispObj(ho_Image_Changed); if (roiManager != null && (dispROI == MODE_INCLUDE_ROI)) { roiManager.paintData(window); } HSystem.SetSystem("flush_graphic", "true"); window.SetColor("black"); window.DispLine(-100.0, -100.0, -101.0, -101.0); if (ReDrawEvent != null) { ReDrawEvent(); } mGC.stateOfSettings.Clear(); }
/// <summary> /// Repaints the HALCON window 'window' /// </summary> public void repaint(HalconDotNet.HWindow window) { int count = HObjList.Count; HObjectEntry entry; HSystem.SetSystem("flush_graphic", "false"); window.ClearWindow(); mGC.stateOfSettings.Clear(); for (int i = 0; i < count; i++) { entry = ((HObjectEntry)HObjList[i]); mGC.applyContext(window, entry.gContext); window.DispObj(entry.HObj); } addInfoDelegate(); if (roiManager != null && (dispROI == MODE_INCLUDE_ROI)) { roiManager.paintData(window); } HSystem.SetSystem("flush_graphic", "true"); window.SetColor("black"); window.DispLine(-100.0, -100.0, -101.0, -101.0); }
/// <summary> /// Paints the active handle of the ROI object into the supplied window. /// </summary> public override void displayActive(HalconDotNet.HWindow window) { if (!SizeEnable || !ShowRect) { return; } int hrow, hcol, hw, hh; window.GetPart(out hrow, out hcol, out hh, out hw); int wrow, wcol, ww, wh; window.GetWindowExtents(out wrow, out wcol, out ww, out wh); double smallregionwidth = (hw - hcol) * windowsmallregionwidth / ww; double smallregionheight = (hh - hrow) * windowsmallregionwidth / wh; switch (activeHandleIdx) { case 0: window.DispRectangle2(row1, col1, 0, smallregionheight, smallregionwidth); break; case 1: window.DispObj(arrowHandleXLD); //window.DispRectangle2(row2, col2, 0, 5, 5); break; case 2: window.DispRectangle2(midR, midC, 0, smallregionheight, smallregionwidth); break; } }
/// <summary> /// Paints the active handle of the ROI object into the supplied window /// </summary> public override void displayActive(HalconDotNet.HWindow window) { if (!_initPointsDone) { return; } switch (activeHandleIdx) { case 0: window.DispRectangle2(midR, midC, 0, 5, 5); break; case 1: window.DispRectangle2(sizeR, sizeC, 0, 5, 5); break; case 2: window.DispRectangle2(startR, startC, _startPhi, 10, 2); break; case 3: window.DispObj(arrowHandleXLD); break; } }
/// <summary>Paints the ROI into the supplied window.</summary> public override void draw(HalconDotNet.HWindow window, int imageWidth, int imageHeight) { window.DispLine(row1, col1, row2, col2); window.DispRectangle2(row1, col1, 0, 8, 8); window.DispObj(arrowHandleXLD); //window.DispRectangle2( row2, col2, 0, 25, 25); window.DispRectangle2(midR, midC, 0, 8, 8); }
/// <summary>Paints the ROI into the supplied window</summary> /// <param name="window">HALCON window</param> public override void Draw(HalconDotNet.HWindow window) { if (contour == null) { contour = new HXLDCont(); } contour.Dispose(); contour.GenCircleContourXld(midR, midC, radius, startPhi, (startPhi + extentPhi), circDir, 1.0); window.DispObj(contour); int width = GetHandleWidth(); window.DispRectangle2(sizeR, sizeC, 0, width, width); window.DispRectangle2(midR, midC, 0, width, width); window.DispObj(startRect2XLD); window.DispObj(arrowHandleXLD); }
/// <summary>Paints the ROI into the supplied window.</summary> public override void draw(HalconDotNet.HWindow window, bool include) { window.SetColor(regionColor); window.DispLine(row1, col1, row2, col2); if (include) { window.DispRectangle2(row1, col1, 0, 5, 5); window.DispRectangle2(midR, midC, 0, 5, 5); } window.DispObj(arrowHandleXLD); //window.DispRectangle2( row2, col2, 0, 5, 5); }
/// <summary> /// Repaints the HALCON window 'window' /// </summary> public void repaint(HalconDotNet.HWindow window, HObject obj) { HSystem.SetSystem("flush_graphic", "false"); window.ClearWindow(); window.DispObj(obj); HSystem.SetSystem("flush_graphic", "true"); window.SetColor("black"); window.DispLine(-100.0, -100.0, -101.0, -101.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.DispRectangle2(row1, col1, 0, 5, 5); break; case 1: window.DispObj(arrowHandleXLD); //window.DispRectangle2(row2, col2, 0, 5, 5); break; case 2: window.DispRectangle2(midR, midC, 0, 5, 5); break; } }
/// <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.DispRectangle2(_StartRow, _StartColumn, 0, 5, 5); break; case 1: window.DispObj(_AuxLineHandleXLD); //window.DispRectangle2(row2, col2, 0, 5, 5); break; case 2: //window.DispRectangle2(_MidRow, _MidCol, 0, 5, 5); break; } }
public int windowsmallregionwidth = 5;//4边小矩形的大小 /// <summary>Paints the ROI into the supplied window.</summary> public override void draw(HalconDotNet.HWindow window) { window.DispLine(row1, col1, row2, col2); if (SizeEnable && ShowRect) { int hrow, hcol, hw, hh; window.GetPart(out hrow, out hcol, out hh, out hw); int wrow, wcol, ww, wh; window.GetWindowExtents(out wrow, out wcol, out ww, out wh); double smallregionwidth = (hw - hcol) * windowsmallregionwidth / ww; double smallregionheight = (hh - hrow) * windowsmallregionwidth / wh; window.DispRectangle2(row1, col1, 0, smallregionheight, smallregionwidth); window.DispObj(arrowHandleXLD); //window.DispRectangle2( row2, col2, 0, 5, 5); window.DispRectangle2(midR, midC, 0, smallregionheight, smallregionwidth); } }
/// <summary> /// 在窗体上显示激活的控制点 /// </summary> public override void DisplayActive(HalconDotNet.HWindow window) { int width = GetHandleWidth(); switch (activeHandleIdx) { case 0: window.DispRectangle2(startRow, startCol, 0, width, width); break; case 1: window.DispObj(arrowHandleXLD); //window.DispRectangle2(row2, col2, 0, 5, 5); break; case 2: window.DispRectangle2(midRow, midCol, 0, width, width); break; } }
/// <summary> /// Repaints the HALCON window 'window' /// </summary> public void repaintUsingFlushGraphic(HalconDotNet.HWindow window) { int count = HObjList.Count; HObjectEntry entry; if (window != null) { HSystem.SetSystem("flush_graphic", "false"); window.ClearWindow(); // check the boundatries of the image part if ((ImgRow2 > ImgRow1) && (ImgCol2 > ImgCol1)) { window.SetPart((int)ImgRow1, (int)ImgCol1, (int)ImgRow2, (int)ImgCol2); } // set the image part to window size else { window.SetPart(0, 0, windowHeight - 1, windowWidth - 1); } mGC.stateOfSettings.Clear(); for (int i = 0; i < count; i++) { entry = ((HObjectEntry)HObjList[i]); if (entry != null) { mGC.applyContext(window, entry.gContext); window.DispObj(entry.HObj); } } addInfoDelegate(); if (roiManager != null && (dispROI == MODE_INCLUDE_ROI)) { roiManager.paintData(window); } HSystem.SetSystem("flush_graphic", "true"); window.DispLine(-1000.0, -1000.0, -1001.0, -1001.0); } }
/// <summary> /// Repaints the HALCON window 'window' /// </summary> public void repaint(HalconDotNet.HWindow window) { int h = imageHeight; if (window.IsInitialized() == false || viewPort.HalconID.ToInt32() == -1 || viewPort.ImagePart.Width <= 1 || viewPort.ImagePart.Height <= 1) { return; } int count = HObjList.Count; HObjectEntry entry; HSystem.SetSystem("flush_graphic", "false"); window.ClearWindow(); mGC.stateOfSettings.Clear(); for (int i = 0; i < count; i++) { entry = ((HObjectEntry)HObjList[i]); mGC.applyContext(window, entry.gContext); window.DispObj(entry.HObj); } addInfoDelegate(); if (roiManager != null && (dispROI == MODE_INCLUDE_ROI)) { roiManager.paintData(window); } HSystem.SetSystem("flush_graphic", "true"); window.SetColor("black"); window.DispLine(-100.0, -100.0, -101.0, -101.0); for (int i = 0; i < HMsgList.Count; i++) { if (HMsgList[i].Size != 0) { set_display_font(viewPort.HalconID, HMsgList[i].Size, HMsgList[i].Font, HMsgList[i].Bold, HMsgList[i].Slant); } window.DispText(HMsgList[i].HMsg, HMsgList[i].coordSystem, HMsgList[i].row, HMsgList[i].column, HMsgList[i].color, HMsgList[i].genParamName, HMsgList[i].genParamValue); } }
/// <summary> /// Repaints the HALCON window 'window' /// </summary> public void repaint(HalconDotNet.HWindow window) { try { int count = HObjImageList.Count; HObjectEntry entry; HSystem.SetSystem("flush_graphic", "false"); window.ClearWindow(); mGC.stateOfSettings.Clear(); //显示图片 for (int i = 0; i < count; i++) { entry = ((HObjectEntry)HObjImageList[i]); mGC.applyContext(window, entry.gContext); window.DispObj(entry.HObj); } //显示region showHObjectList(); addInfoDelegate(); if (roiManager != null && (dispROI == MODE_INCLUDE_ROI)) { roiManager.paintData(window); } HSystem.SetSystem("flush_graphic", "true"); //注释了下面语句,会导致窗口无法实现缩放和拖动 window.SetColor("black"); window.DispLine(-100.0, -100.0, -101.0, -101.0); } catch (Exception) { } }
/// <summary>绘制图形在窗口中</summary> public override void Draw(HalconDotNet.HWindow window) { //直线绘制 window.DispLine(startRow, startCol, endRow, endCol); int width = GetHandleWidth(); //直线起点的框 window.DispRectangle2(startRow, startCol, 0, width, width); //直线终点的箭头 window.DispObj(arrowHandleXLD); //window.DispRectangle2( row2, col2, 0, 5, 5); //直线中点的框 window.DispRectangle2(midRow, midCol, 0, width, width); //int r1, c1, r2, c2; //window.GetPart(out r1, out c1, out r2, out c2); //int width = r2 - r1; ////直线起点的框 //window.DispRectangle2(startRow, startCol, 0, width / 50.0, width / 50.0); ////System.Diagnostics.Debug.WriteLine("{0}-{1}-{2}-{3}", r1, c1, r2, c2); }
private void drawOuterArc(HalconDotNet.HWindow window) { double sPhi, extent, innerRad, outerRad; HTuple innerR, outerR, innerC, outerC; HXLDCont outCont, innerCont, contour; outCont = new HXLDCont(); innerCont = new HXLDCont(); var roiModel = this.getModelData(); var mMeasROI = genArcRegionModel(roiModel); sPhi = mMeasROI[2]; extent = mMeasROI[3]; outerRad = mMeasROI[4]; innerRad = mMeasROI[5]; //畫內圓 innerCont.GenCircleContourXld(mMeasROI[0], mMeasROI[1], innerRad, sPhi, (sPhi + extent), (extent > 0) ? "positive" : "negative", 1.0); //畫外圓 outCont.GenCircleContourXld(mMeasROI[0], mMeasROI[1], outerRad, (sPhi + extent), sPhi, (extent > 0) ? "negative" : "positive", 1.0); innerCont.GetContourXld(out innerR, out innerC); outCont.GetContourXld(out outerR, out outerC); innerR = innerR.TupleConcat(outerR); innerC = innerC.TupleConcat(outerC); contour = new HXLDCont(innerR, innerC); contour = contour.CloseContoursXld(); _ArcRegion.Dispose(); _ArcRegion = contour.GenRegionContourXld("margin"); window.DispObj(_ArcRegion); contour.Dispose(); innerCont.Dispose(); outCont.Dispose(); }
/// <summary> /// Repaints the HALCON window 'window' /// </summary> private void repaint(HalconDotNet.HWindow window) { int count = HObjList.Count; if (count > 0) { HObjectEntry entry; HSystem.SetSystem("flush_graphic", "false"); window.ClearWindow(); mGC.stateOfSettings.Clear(); for (int i = 0; i < count; i++) { entry = ((HObjectEntry)HObjList[i]); if (entry.colorShow.Length > 0) { window.SetColor(entry.colorShow); } mGC.applyContext(window, entry.gContext); window.DispObj(entry.HObj); } if (roiManager != null) { roiManager.paintData(window); } HSystem.SetSystem("flush_graphic", "true"); window.DispLine(-100.0, -100.0, -101.0, -101.0); } count = StrList.Count; if (count > 0) { foreach (StringX strX in StrList) { window.SetFont("-Consolas-" + strX.size.ToString() + "-*-" + (strX.bold ? "1" : "0") + "-*-*-" + (strX.slant ? "1" : "0") + "-"); window.SetColor(strX.color.Name.ToLower()); window.SetTposition(strX.row, strX.column); window.WriteString(strX.str); } } }
/// <summary> /// Repaints the HALCON window 'window' /// </summary> public void repaint(HalconDotNet.HWindow window) { int h = imageHeight; if (window.IsInitialized() == false || viewPort.HalconID.ToInt32() == -1 || viewPort.ImagePart.Width <= 1 || viewPort.ImagePart.Height <= 1) { return; } int count = HObjList.Count; HObjectEntry entry; HSystem.SetSystem("flush_graphic", "false"); window.ClearWindow(); mGC.stateOfSettings.Clear(); for (int i = 0; i < count; i++) { entry = ((HObjectEntry)HObjList[i]); mGC.applyContext(window, entry.gContext); window.DispObj(entry.HObj); } addInfoDelegate(); if (roiManager != null && (dispROI == MODE_INCLUDE_ROI)) { roiManager.paintData(window); } HSystem.SetSystem("flush_graphic", "true"); //window.SetColor("black"); //window.DispLine(-100.0, -100.0, -101.0, -101.0); window.SetDraw("fill"); //window.SetColored(12); window.SetColor("green"); }
/// <summary> /// Repaints the HALCON window 'window' /// </summary> public void repaint(HalconDotNet.HWindow window) { try { int count = HObjList.Count; HObjectEntry entry; HSystem.SetSystem("flush_graphic", "false"); window.ClearWindow(); mGC.stateOfSettings.Clear(); for (int i = 0; i < count; i++) { entry = ((HObjectEntry)HObjList[i]); mGC.applyContext(window, entry.gContext); window.DispObj(entry.HObj); } addInfoDelegate(); if (_roiManager != null && (_dispROI == MODE_INCLUDE_ROI)) { _roiManager.paintData(window); } var prevScaleC = (double)((ImgCol2 - ImgCol1) / imageWidth); foreach (var wViewModel in WriteStringList) { window.SetColor("red"); HOperatorSet.SetTposition(window, wViewModel.Row, wViewModel.Col); HOperatorSet.WriteString(window, wViewModel.Text); } //Display Arrow var arrowSize = 5 * prevScaleC; arrowSize = (arrowSize < 2) ? 2 : arrowSize; foreach (var arrowModel in ArrowList) { HOperatorSet.DispArrow(window, arrowModel.CenterY, arrowModel.CenterX, arrowModel.FirstArrowY, arrowModel.FirstArrowX, arrowSize); HOperatorSet.DispArrow(window, arrowModel.CenterY, arrowModel.CenterX, arrowModel.SecArrowY, arrowModel.SecArrowX, arrowSize); } //畫格線 if (ShowGrid) { drawGridLines(window); } HSystem.SetSystem("flush_graphic", "true"); window.SetColor(this.RepaintWindowColor); window.DispLine(-100.0, -100.0, -101.0, -101.0); } catch (HOperatorException ex) { var errorNumber = ex.GetErrorNumber(); /* * 5106 發生情境為 * 1。開啟擷取影像後,未斷線就關閉 MDI 視窗 */ if (errorNumber != 5106 && errorNumber != 5100) { Hanbo.Log.LogManager.Error(ex); } } }
/// <summary> /// Repaints the HALCON window 'window' /// </summary> public void repaint(HalconDotNet.HWindow window) { lock (lockershow) { int count = HObjList.Count; //HObjectEntry entry; HSystem.SetSystem("flush_graphic", "false"); window.ClearWindow(); mGC.stateOfSettings.Clear(); //for (int i = 0; i < count; i++) //{ // entry = ((HObjectEntry)HObjList[i]); // mGC.applyContext(window, entry.gContext); // window.DispObj(entry.HObj); //} if (entry != null) { try { mGC.applyContext(window, entry.gContext); window.DispObj(entry.HObj); } catch (Exception ex) { } } addInfoDelegate(); if (roiManager != null && (dispROI == MODE_INCLUDE_ROI)) { roiManager.paintData(window); } HSystem.SetSystem("flush_graphic", "true"); if (myRect.Count != 0) { window.SetColor("green"); window.SetLineWidth(2); HObject ho_Rect = new HObject(); for (int i = 0; i < myRect.Count; i++) { if (myRect[i].isCircle) { window.SetColor("green"); window.SetLineWidth(2); if (myRect[i].Found) { HOperatorSet.GenCircleContourXld(out ho_Rect, myRect[i].Y, myRect[i].X, myRect[i].Radius, 0, 6.28318, "positive", 1.0); window.DispObj(ho_Rect); } //window.DispCircle(myRect[i].Y, myRect[i].X, myRect[i].Radius); window.DispCross(myRect[i].Y, myRect[i].X, 50, 0); disp_message(window, "X:" + myRect[i].X.ToString("F1") + ", Y:" + myRect[i].Y.ToString("F1") + ", Means:" + myRect[i].Means.ToString("F1"), "image", 100, 50, "green", "false"); disp_message(window, "Radius:" + myRect[i].Radius.ToString("F1") + ",Angle:" + Helper.GetDegreeFromRadian((float)myRect[i].Angle).ToString("F1"), "image", 300, 50, "green", "false"); } else { window.SetColor("green"); window.SetLineWidth(2); if (myRect[i].Found) { HOperatorSet.GenRectangle2ContourXld(out ho_Rect, myRect[i].Y, myRect[i].X, myRect[i].Angle, myRect[i].Width / 2, myRect[i].Height / 2); window.DispObj(ho_Rect); } //if (myRect[i].Found) //{ //window.SetColor("cyan"); //window.DispObj(myRect[i].rect_border); //} window.DispCross(myRect[i].Y, myRect[i].X, 50, 0); disp_message(window, "X:" + myRect[i].X.ToString("F1") + ", Y:" + myRect[i].Y.ToString("F1") + ", Means:" + myRect[i].Means.ToString("F1"), "image", 100, 50, "green", "false"); disp_message(window, "Width:" + myRect[i].Width.ToString("F1") + ", Height:" + myRect[i].Height.ToString("F1"), "image", 300, 50, "green", "false"); //disp_message(window, "Means:" + myRect[i].Means.ToString("F1"), "image", 500, 50, "green", "false"); } } //for (int i = 0; i < myRect.Count; i++) // window.DispRectangle2(myRect[i].Y, myRect[i].X, myRect[i].Angle, myRect[i].Width / 2, myRect[i].Length / 2); } if (bShowCrossHair) { window.SetColor("red"); window.SetLineWidth(2); int winrow, winclom, winwidth, winHeight; window.GetPart(out winrow, out winclom, out winwidth, out winHeight); window.DispLine(winrow + (winwidth - winrow) / 2, (double)winclom, winrow + (winwidth - winrow) / 2, winHeight); window.DispLine((double)winrow, winclom + (winHeight - winclom) / 2, winwidth, winclom + (winHeight - winclom) / 2); } if (IsDrawCross1) { window.DispCross(200.0, 200.0, 40, 0); //window.WriteString("标定1"); } if (IsDrawCross2) { //window.DispCross(200.0, 200.0, 2, 0); window.DispCross(600.0, 600.0, 40, 0); // window.WriteString("标定2"); } } }
/// <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) { contour.Dispose(); contour.GenCircleContourXld(midR, midC, radius, startPhi, (startPhi + extentPhi), circDir, 1.0); 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; } window.DispObj(contour); window.DispRectangle2(sizeR, sizeC, 0, littleRecSize, littleRecSize); window.DispRectangle2(midR, midC, 0, littleRecSize, littleRecSize); window.DispRectangle2(startR, startC, startPhi, littleRecSize, littleRecSize); window.DispRectangle2(extentR, extentC, 0, littleRecSize, littleRecSize); window.DispLine(startR, startC, midR, midC); window.DispLine(extentR, extentC, midR, midC); }