VisionPro二次开发学习笔记4-使用C#创建绘图图形
VisionPro提供了许多可以添加到CogDisplay的基本形状,例如CogCircle,CogRectangle,CogEllipse和CogRectangleAffine。这些形状可以是用户可以用鼠标操作的交互式图形,也可以是用户无法更改的静态形状。
若要在CogDisplay控件上绘制图形,您需要在Visual Studio.NET应用程序中添加对Cognex.VisionPro,Cognex.VisionPro.Core和Cognex.VisionPro.Display.Controls程序集的引用。
绘制图形
以下编程语句创建CogRectangle和CogCircle的实例,设置其属性,并将其添加到CogDisplay控件。
- 添加引用
using Cognex.VisionPro;
using Cognex.VisionPro.Display;
- 声明变量
CogRectangle cgRect;
CogCircle cgCirc;
-
创建图形对象
cgRect = new CogRectangle(); cgCirc = new CogCircle();
cgRect
是一个矩形对象的实例,cgCirc
是一个圆对象的实例。这两个对象都是 Cognex VisionPro 中用于图形表示的类。
-
设置矩形的属性
cgRect.X = 150; cgRect.Y = 150; cgRect.Color = CogColorConstants.Green; cgRect.SelectedSpaceName = "*"; cgRect.Interactive = true;
cgRect.X
和cgRect.Y
:设置矩形的左上角坐标为 (150, 150)。cgRect.Color
:设置矩形的颜色为绿色。cgRect.SelectedSpaceName
:设置为"*"
,表示该图形可以在任何坐标空间中选择。cgRect.Interactive
:设置为true
,表示该矩形是交互式的,用户可以与之进行交互。
-
设置矩形的交互属性
cgRect.GraphicDOFEnable = CogRectangleDOFConstants.Size;
GraphicDOFEnable
:设置用户可以交互的属性,这里指定用户只能改变矩形的大小,而不能移动其位置或改变其他属性。
-
设置圆的属性
cgCirc.CenterX = 220; cgCirc.CenterY = 220; cgCirc.Color = CogColorConstants.Blue; cgCirc.SelectedSpaceName = "*"; cgCirc.Interactive = true;
cgCirc.CenterX
和cgCirc.CenterY
:设置圆的中心坐标为 (220, 220)。cgCirc.Color
:设置圆的颜色为蓝色。cgCirc.SelectedSpaceName
:与矩形类似,表示该圆也可以在任何坐标空间中选择。cgCirc.Interactive
:设置为true
,表示该圆是交互式的。
-
设置圆的交互属性
cgCirc.GraphicDOFEnable = CogCircleDOFConstants.Radius;
GraphicDOFEnable
:这里指定用户只能改变圆的半径,而不能移动其中心或改变其他属性。
-
将图形添加到显示控件
cogDisplay1.InteractiveGraphics.Add(cgCirc, null, false); cogDisplay1.InteractiveGraphics.Add(cgRect, null, false);
cogDisplay1.InteractiveGraphics.Add
:将创建的圆和矩形添加到cogDisplay1
控件的交互图形列表中。第二个参数为null
,表示不指定图形的标签,第三个参数为false
,表示不自动更新图形。
总结
这个方法的作用是初始化两个图形(一个矩形和一个圆),并将它们添加到一个显示控件中,使得用户可以通过鼠标交互来调整这些图形的大小(矩形)和半径(圆)。通过设置颜色、交互属性和允许的交互方式,提供了一个用户友好的图形界面,便于用户进行视觉化操作。
相关文章:
VisionPro二次开发学习笔记4-使用C#创建绘图图形
VisionPro提供了许多可以添加到CogDisplay的基本形状,例如CogCircle,CogRectangle,CogEllipse和CogRectangleAffine。这些形状可以是用户可以用鼠标操作的交互式图形,也可以是用户无法更改的静态形状。 若要在CogDisplay控件上绘…...
【langchain学习】使用JsonOutputParser让大模型生成结构化JSON数据
使用Langchain处理结构化数据,以JsonOutputParser为例。以下是具体步骤和代码示例: 导入所需库: from config import llm from langchain_core.output_parsers import JsonOutputParser from langchain_core.prompts import PromptTemplate f…...

【学习笔记】Matlab和python双语言的学习(最大最小化规划)
文章目录 前言一、最大最小化规划二、选址问题三、代码实现----Matlab1.Matlab 的 fminimax 函数2.Matlab 代码 四、代码实现----python总结 前言 通过模型算法,熟练对Matlab和python的应用。 学习视频链接: https://www.bilibili.com/video/BV1EK41187…...
基于SpringBoot的Redis开发实战教程
配置和集成缓存涉及多个步骤,从选择适当的缓存技术到实现缓存的存取操作。以下是具体的步骤和示例,假设我们使用Redis作为缓存工具,并基于Spring Boot进行开发。 1. 选择和配置缓存技术 a. 选择缓存工具 Redis 是一个流行的内存数据结构存…...
mysql 分区操作
1。新建分区 mysql 没有全局唯一索引,因此所有涉及唯一索引的都需要加上分区键,因此要做好权衡,键分区不一定能提高效率哦,建分区的主要目的是为了分区查询和删除数据 --将CREATE_TIME 加入主键 ALTER TABLE your_table DROP PR…...

[网鼎杯 2018]Comment
使用环境为https://adworld.xctf.org.cn/challenges,搜索题目[网鼎杯 2018]Comment。 进入环境,发现为一个留言板,点击发帖试试。 尝试发帖 跳转到登录页面,根据提示使用burp进行暴力破解。 发现payload为666时状态码不同。 尝试…...

LVS详解
目录 一、LVS简介 LVS 官网: 二、LVS 负载均衡模式 2.1 LVS-NAT模式: 2.1.1 简介 2.1.2 工作流程图: 2.1.3 说明: 2.1.4 LVS-NAT的优缺点: 2.2 LVS-DR模式: 2.2.1 简介 2.2.2 工作原理: 2.2.3 工作…...

Yolo-World初步使用
Yolo v8目前已经支持Yolo-World,整理一下初步使用步骤。 使用步骤 1 先下载Yolo-World的pt文件,下载地址:GitHub - AILab-CVC/YOLO-World: [CVPR 2024] Real-Time Open-Vocabulary Object Detection 官网应该是点这里(有个笑脸…...

Navicat Premium使用
文章目录 Navicat Premium 16的使用连接MySQL建立数据库并构建表导入数据 Navicat Premium 16是一款功能强大的数据库管理工具,它允许用户从单一应用程序中同时连接多种数据库,提供了极其便捷和高效的管理和开发环境,对于 MySQL 用户来说&…...

LLC数字控制TMS320F28034,4-DSP的epwm配置介绍
LLC数字控制TMS320F28034,4-DSP的epwm配置介绍 1 TMS320F280341.1 概述1.2 PWM详细介绍 2 TMS320F28034 PWM功能框图2.1 ePWM功能模块2.2 ePWM功能寄存器框图 3 TMS320F28034 PWM初始化流程4 结合项目设计5 代码设计5.1 PWM初始化程序5.2 工程代码 6 总结 配套代码示…...

MongoDB学习记录
1、初识Mongo 概述:与关系型数据库不同,MongoDB 的数据以类似于 JSON 格式的二进制文档存储,通常称这种格式为Bson,Bson不仅支持JSON中已有的数据类型,还增加了一些额外的数据类型,例如日期和二进制数据&a…...

vlunstack-2(复现红日安全-ATT CK实战)
环境搭建 配置信息 DC IP:10.10.10.10 OS:Windows 2012(64) 应用:AD域 WEB IP1:10.10.10.80 IP2:192.168.47.131 OS:Windows 2008(64) 应用:Weblogic 10.3.6MSSQL 2008 PC IP1:10.10…...

【生信入门】预览快速体验Linux-重生之小明闯Linux
生信少走弯路,快试试生信云专用服务器。新用户注册免费体验5小时。https://www.tebteb.cc 一.故事 小明的Linux冒险 在一片混沌的黑暗中,小明睁开了眼睛。他感到头痛欲裂,四周一片漆黑,只有一行闪烁的字符映入眼帘: [xiaomingu…...

用.net core简易搭建webapi托管到IIS
1、从官网下载.NET Core 托管捆绑包 https://learn.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?viewaspnetcore-8.0&tabsvisual-studio 2、新建ASP.NET Core WEB API项目 新建控制器TestController并生成GetInfo方法 3、发布 目标路径选择 2)显示所有…...
【计算机网络---OSI七层模型】
一、OSI的基本概念及原则 OSI是Open System Interconnect的缩写,意为开放式系统互联。各个层次的划分遵循以下原则: 1. 同一层的各网络节点都有相同的层次结构,具有同样的功能; 2. 同一节点的内相邻层之间通过接口进行通信&…...

Error updating database. Cause: org.apache.shiro.UnavailableSecurity
mybtisplus查看MetaObjectHandler是否有自定义获取用户信息填充用户的方法...

【网络安全】本地文件包含及远程文件包含漏洞详解
一、文件包含漏洞概述 1.1 什么是文件包含 开发人员将需要重复调用的函数写入一个文件,对该文件进行包含时产生的操作。这样编写代码能减少冗余,降低代码后期维护难度。 保证网站整体风格统一:导航栏、底部footer栏等,把这些不…...
redis启动的三种方式
默认启动: # 默认的启动指令 redis-server 默认启动属于前台启动,会阻塞整个会话窗口,窗口关闭或者按下CTRL C则Redis停止。不推荐使用。 //查看云服务器是否安装过redis redis-server -v//检查安装目录 which redis-server//查看redis进…...

手机怎么远程控制电脑屏幕?手机远程控制电脑方法分享
手机与电脑之间的互联互通变得越来越便捷。 无论是工作还是学习,有时我们需要在手机上远程控制电脑屏幕,以完成一些复杂的操作或查看电脑上的文件。 本文将详细介绍几种实用的手机远程控制电脑屏幕的方法,帮助读者轻松实现这一目标。 一、使…...
NET的全称、主要功能以及在计算机网络中的作用?
.NET是一个广泛的、全方位的平台,应用于开发网站、应用程式、网页应用程式和网络服务。以下是.NET的全称、主要功能以及在计算机网络中的作用: .NET的全称 .NET的全称实际上是Microsoft .NET Framework。它是微软公司推出的一种面向网络的开发框架&…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
文章目录 一、开启慢查询日志,定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...