当前位置: 首页 > news >正文

asp.net 网站强制兼容性运行网站备案身份核验

asp.net 网站强制兼容性运行,网站备案身份核验,网站建设文献英文,网站设计哪家公司好文章目录 专栏前言锚点二次开发添加回调函数辅助Model类 下集预告 专栏 Halcon开发 博客专栏 WPF/HALCON机器视觉合集 前言 Halcon控件C#开发是我们必须掌握的,因为只是单纯的引用脚本灵活性过低,我们要拥有Halcon辅助开发的能力 锚点开发是我们常用的…

文章目录

  • 专栏
  • 前言
  • 锚点二次开发
    • 添加回调函数
    • 辅助Model类
  • 下集预告

专栏

Halcon开发 博客专栏
WPF/HALCON机器视觉合集

前言

Halcon控件C#开发是我们必须掌握的,因为只是单纯的引用脚本灵活性过低,我们要拥有Halcon辅助开发的能力

锚点开发是我们常用的开发方式,用于寻找相似点。如图为锚点
在这里插入图片描述

锚点二次开发

添加回调函数

回调函数在HDrawingObject的OnDrag函数中,
在这里插入图片描述

在这里插入图片描述

/// <summary>
/// 画圆
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button_Click_1(object sender, RoutedEventArgs e)
{//创建一个圆形,圆心为(100,100),半径为50var drawingObject = HDrawingObject.CreateDrawingObject(HDrawingObject.HDrawingObjectType.CIRCLE, new HTuple[] { 100, 100, 50 });//添加回调drawingObject.OnDrag(HDrawingObjectCallbackClass);//临时存放ListdrawingObjects.Add(drawingObject);//将圆画再hSmart画布上面hSmart.HalconWindow.AttachDrawingObjectToWindow(drawingObject);}/// <summary>
/// 回调函数
/// </summary>
/// <param name="drawid">回调物体</param>
/// <param name="window">窗体</param>
/// <param name="type">类型</param>
public void HDrawingObjectCallbackClass(HDrawingObject drawid, HWindow window, string type)
{//由于是圆形锚点,所以有x,y,radius三个属性var htuples = new HTuple[] {drawid.GetDrawingObjectParams("row"),//x轴坐标drawid.GetDrawingObjectParams("column"),//y轴坐标drawid.GetDrawingObjectParams("radius"),//半径};}

辅助Model类

在Halcon控件中,每个被创建的控件都会有一个唯一的ID,用于区别每个的信息。如果我想实时更新被拖动锚点的坐标,我就需要去调用HDrawingObject的GetDrawingObjectParams方法,就比较麻烦。所以我们可以通过自定义一个类用于方便的管理

/// <summary>
/// 因为HDrawingObject没有坐标参数,所以我们为了方便操作添加创建了一个HDrawingObjectModel
/// </summary>
public class HDrawingObject_CircleModel
{public HTuple? Row { get; set; }public HTuple? Column { get; set; }public HTuple? Radius { get; set; }public readonly HDrawingObject HDrawingObject;public readonly long Id;public HDrawingObject_CircleModel(HDrawingObject hDrawingObject){HDrawingObject = hDrawingObject;Id = HDrawingObject.ID;Update(HDrawingObject);}public void Print(){System.Diagnostics.Debug.WriteLine($"id:[{HDrawingObject.ID}],row:[{Row}],column:[{Column}],radius:[{Radius}]");}public void Update(HDrawingObject hDrawingObject){Row = hDrawingObject.GetDrawingObjectParams("row");Column = hDrawingObject.GetDrawingObjectParams("column");Radius = hDrawingObject.GetDrawingObjectParams("radius");}}

然后我们新建一个List用于存放新增的锚点

/// <summary>
/// 用来存放后面所有新增的锚点
/// </summary>
private List<HDrawingObject_CircleModel> drawingObjects;

更新点击事件代码

/// <summary>
/// 画圆
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button_Click_1(object sender, RoutedEventArgs e)
{//创建一个圆形,圆心为(100,100),半径为50var drawingObject = HDrawingObject.CreateDrawingObject(HDrawingObject.HDrawingObjectType.CIRCLE, new HTuple[] { 100, 100, 50 });//----添加回调---//添加拖拽回调drawingObject.OnDrag(HDrawingObjectCallbackClass);//放缩变化drawingObject.OnResize(HDrawingObjectCallbackClass);var model = new HDrawingObject_CircleModel(drawingObject);//临时存放ListdrawingObjects.Add(model);model.Print();//将圆画再hSmart画布上面hSmart.HalconWindow.AttachDrawingObjectToWindow(drawingObject);}/// <summary>
/// 回调函数
/// </summary>
/// <param name="drawingObject">回调物体</param>
/// <param name="window">窗体</param>
/// <param name="type">类型</param>
public void HDrawingObjectCallbackClass(HDrawingObject drawid, HWindow window, string type)
{var drawObj = drawingObjects.FirstOrDefault(t => t.HDrawingObject.ID.Equals(drawid.ID));//如果不为空则打印if (drawObj != null){drawObj.Update(drawid);drawObj.Print();}else{Debug.WriteLine($"drawid.id[{drawid.ID} is not find!]");}}

结果

在这里插入图片描述

下集预告

下一期我将会讲解如何使用Halcon和C#进行混合开发,因为难度较大,所以我会咕咕咕一段时间,去了解一下怎么使用。应该是难度不大的,就是把Halcon的语言翻译一下。

http://www.yayakq.cn/news/352105/

相关文章:

  • 网站开发语言优缺点百度竞价app
  • 网站代码规范做网站商城需要申请商标吗
  • 五指山住房建设局网站wordpress 网站图标
  • 丽水市住房和城乡建设局网站淄博云网信息技术有限公司
  • 织梦如何做网站上海网站设计价
  • 网站站长如何赚钱东莞网站建设服务
  • 怎么做整蛊网站wordpress共享插件
  • 福州婚庆网站建设哪家好互联网运营培训班哪个好
  • 合肥科技网站建设烟台网站建设方案咨询
  • 一叶子电子商务网站建设策划书网站建设专业的公司
  • 网站外链坏处广州市番禺区
  • 廊坊网站建设-纵横网络 网站文创产品设计公司
  • 优化seo网站百度网盘下载慢怎么解决
  • 网站数据库头条短链接生成短网址生成
  • 凡科网怎么建网站西宁网站建设报价cu君博規范
  • 关于1-6月网站建设工作通报河南搜索引擎优化
  • 东莞建设网站培训域名买了怎么做网站
  • 天柱建设局网站网站网络优化服务
  • 做推广必须知道的网站吗站酷网素材图库
  • php开发手机端网站开发济宁网站建设推荐
  • 郑州网站开发与建设上海发布首页
  • 用linux做网站网站建设与管理名词解释
  • 企业网站成品源码北京seo排名技术
  • 做网站的公司赚钱吗网页设计常见的布局形式
  • 如何做好网站优化网站风格趋势
  • 网站多大需要服务器涂料厂做网站有用吗
  • 地税网站如何做税种确认优秀网站案列
  • 数字营销的优势有哪些英文谷歌seo
  • 郑州网站高端设计商业网站建设案例教程
  • 电子商务网站建设与管理理解商城小程序价格