这里写目录标题
1.操作demo
各种直线图形的绘画和轮廓(XLD)显示
文字的写入与修改其规格,可修改显示字体的大小
2.绘画直线及显示
①在halcon中的操作代码如下
dev_set_color ('red')
dev_set_line_width (1)
draw_line (3600, Row1, Column1, Row2, Column2)
gen_region_line (RegionLines, Row1, Column1, Row2, Column2)
②转换成C#代码并将其封装成函数如下
public void DrawLineFun(HObject myImage, HWindowControl myWindowControl)
{
HObject ho_RegionLines;
HTuple row1,col1,row2,col2;
//清空之前的直线
HOperatorSet.GenEmptyObj(out ho_RegionLines);
ho_RegionLines.Dispose();
//定死画笔颜色和线宽大小
HOperatorSet.SetColor(myWindowControl.HalconWindow, "green");
HOperatorSet.SetLineWidth(myWindowControl.HalconWindow, 1);
//绘画直线
HOperatorSet.DrawLine(myWindowControl.HalconWindow, out row1,out col1,out row2,out col2);
HOperatorSet.GenRegionLine(out ho_RegionLines, row1, col1, row2, col2);
HOperatorSet.DispObj(ho_RegionLines, myWindowControl.HalconWindow);
}
3.绘画圆形及显示其轮廓(XLD)
①在halcon中的操作代码如下
dev_set_color ('red')
dev_set_line_width (1)
draw_circle (3600, Row, Column, Radius)
gen_circle_contour_xld (ContCircle, Row, Column, Radius, 0, 6.28318, 'positive', 1)
②转换成C#代码并将其封装成函数如下
public void DrawCircleXLDFun(HObject myImage, HWindowControl myWindowControl)
{
HObject ho_ContCircle;
HTuple hv_Row = null, hv_Column = null, hv_Radius = null;
HOperatorSet.GenEmptyObj(out ho_ContCircle);
ho_ContCircle.Dispose();
//定死画笔颜色和线宽大小
HOperatorSet.SetColor(myWindowControl.HalconWindow, "red");
HOperatorSet.SetLineWidth(myWindowControl.HalconWindow, 1);
//画圆与显示轮廓
HOperatorSet.DrawCircle(myWindowControl.HalconWindow, out hv_Row, out hv_Column, out hv_Radius);
HOperatorSet.GenCircleContourXld(out ho_ContCircle, hv_Row, hv_Column, hv_Radius,
0, 6.28318, "positive", 1);
HOperatorSet.DispObj(ho_ContCircle, myWindowControl.HalconWindow);
}
4.绘画普通矩形及轮廓显示(XLD)
①在halcon中的操作代码如下
dev_set_color ('red')
dev_set_line_width (1)
draw_rectangle1 (3600, Row1, Column1, Row2, Column2)
//显示相关代码在下方代码链接中,可自行下载观看
②转换成C#代码并将其封装成函数如下
HObject ho_rectangle;
HTuple hv_Row1 = null, hv_Column1 = null, hv_Row2 = null;
HTuple hv_Column2 = null;
HOperatorSet.GenEmptyObj(out ho_rectangle);
ho_rectangle.Dispose();
//设置绘画线的颜色的宽度
HOperatorSet.SetColor(myWindowControl.HalconWindow, "white");
HOperatorSet.SetLineWidth(myWindowControl.HalconWindow, 1);
//画矩形
HOperatorSet.DrawRectangle1(myWindowControl.HalconWindow, out hv_Row1, out hv_Column1, out hv_Row2, out hv_Column2);
//显示相关代码在下方代码链接中,可自行下载观看
5.绘画角度可调矩形及其轮廓显示(XLD)
①在halcon中的操作代码如下
dev_set_color ('red')
dev_set_line_width (1)
draw_rectangle2 (3600, Row, Column, Phi, Length1, Length2)
gen_rectangle2_contour_xld (Rectangle, Row, Column, Phi, Length1, Length2)
②转换成C#代码并将其封装成函数如下
//绘画可调角度的矩形轮廓
public void DrawRectangle2XLDFun(HObject myImage, HWindowControl myWindowControl)
{
HObject ho_Rectangle;
HTuple hv_Row = null, hv_Column = null, hv_Phi = null;
HTuple hv_Length1 = null, hv_Length2 = null;
HOperatorSet.GenEmptyObj(out ho_Rectangle);
ho_Rectangle.Dispose();
//设置绘画线的颜色的宽度
HOperatorSet.SetColor(myWindowControl.HalconWindow, "pink");
HOperatorSet.SetLineWidth(myWindowControl.HalconWindow, 1);
//绘画可调整角度矩形及显示轮廓
HOperatorSet.DrawRectangle2(myWindowControl.HalconWindow, out hv_Row, out hv_Column, out hv_Phi, out hv_Length1,
out hv_Length2);
HOperatorSet.GenRectangle2ContourXld(out ho_Rectangle, hv_Row, hv_Column, hv_Phi,
hv_Length1, hv_Length2);
HOperatorSet.DispObj(ho_Rectangle, myWindowControl.HalconWindow);
}
6.显示十字叉轮廓(XLD)
①在halcon中的操作代码如下
dev_set_color ('red')
dev_set_line_width (1)
gen_cross_contour_xld (Cross,100 ,1000 , 6, 0.785398)
②转换成C#代码并将其封装成函数如下
//显示十字叉轮廓
public void DisCrossXLDFun(HObject myImage, HWindowControl myWindowControl)
{
HObject ho_Cross;
HTuple row1, col1, row2, col2;
HOperatorSet.GenEmptyObj(out ho_Cross);
ho_Cross.Dispose();
//设置绘画线的颜色的宽度
HOperatorSet.SetColor(myWindowControl.HalconWindow, "red");
HOperatorSet.SetLineWidth(myWindowControl.HalconWindow, 1);
//获取显示窗体的规格
HOperatorSet.GetPart(myWindowControl.HalconWindow, out row1,out col1, out row2,out col2);
//显示十字叉
HOperatorSet.GenCrossContourXld(out ho_Cross, (row1+row2)/2, (col1+col2)/2, col2-col1, 0);
HOperatorSet.DispObj(ho_Cross, myWindowControl.HalconWindow);
}
7.显示箭头轮廓(XLD)
①在halcon中的操作代码如下
dev_set_color ('red')
dev_set_line_width (1)
gen_arrow_contour_xld (Arrow, 100, 100, 200, 200, 5, 5)
②转换成C#代码并将其封装成函数如下
//显示相关代码在下方代码链接中,可自行下载观看
8.文字写入可修改文字大小哦
①在halcon中的操作代码如下
dev_set_color ('red')
dev_set_line_width (1)
set_tposition (3600, 20, 20) //设置文本光标的位置
write_string (3600, 'hello')
②转换成C#代码并将其封装成函数如下
//可修改文字的大小代码
//在下方代码链接中,可自行下载观看
//不可修改字大小的代码
public void AddMessage(string str_Message, HTuple row, HTuple col,string color, HTuple Size)
{
HTuple hv_Font;
HTuple row1, col1, row2, col2;
//设置字体的颜色
HOperatorSet.SetColor(Hwindow, color);
//得到当前的窗口坐标
HOperatorSet.GetPart(hWindowControl1.HalconWindow, out row1, out col1, out row2, out col2);
//字体放置的位置
HOperatorSet.SetTposition(Hwindow, row1+ row, col1+ col);
HOperatorSet.WriteString(Hwindow, str_Message);
}
9.效果展示视频链接及开源代码下载链接
视频链接:https://www.bilibili.com/video/BV1n64y1s7Lg/
代码链接:https://download.csdn.net/download/adsd1233123/20833118
下节课进阶内容:
线线交点,点到线的距离,线线角度,线的角度,角度换算等等运算公式