public override void DisplayActiveHandle(HalconDotNet.HWindow window) { //显示矩形 window.DispRectangle2(rows[_activeHandleIdx], cols[_activeHandleIdx], _phi, 5, 5); //显示箭头 if (_activeHandleIdx == 5) { window.DispArrow(_locateRow, _locateCol, _locateRow - (1.3 * _length1 * Math.Sin(_phi)), _locateCol + 1.3 * (_length1 * Math.Cos(_phi)), 2); } }
/// <summary> /// /// </summary> /// <param name="window"></param> public override void Draw(HalconDotNet.HWindow window) { //ROI矩形 window.DispRectangle2(_locateRow, _locateCol, _phi, _length1, _length2); for (int i = 0; i < _numHandles; i++) { //ROI矩形的操作柄 window.DispRectangle2(rows[i].D, cols[i].D, _phi, 5, 5); } //注:矩形右边的中点坐标(_locateRow-_length1*Sine(angle),_locateCol+_length2*Cosine(angle)),为使箭头超出一点,故而用系数1.3修正 window.DispArrow(_locateRow, _locateCol, _locateRow - (1.3 * _length1 * Math.Sin(_phi)), _locateCol + 1.3 * (_length1 * Math.Cos(_phi)), 2); }