


以下为代码:
using System;
class Program
{
static void Main(string[] args)
{
//------------------------变量声明与初始化
//模板示教点
double Template_X = 800.00;//产品模板坐标
double Template_Y = 461.88021535;
double Template_R = 0.00;//模板示教物体角度为0
double Robot_Template_X = 1362.91651246;//模板机器人抓取坐标
double Robot_Template_Y = 786.88021535;
double Robot_Template_R = -30.00;
//以上是建立模板时填入的数据
//运行点
double Run_X = 584.89280971;
double Run_Y = -409.54635441;
double Run_R = -201.00;
//以上是旋转中心抓取情况下的产品模板匹配标定转换后的产品位置点,链接标定转换结果
//旋转变换后的目标点
double Target_X = 0.00;
double Target_Y = 0.00;
double Target_R = 0.00;
//-------------------------------------------
//--------------------算法--------------------
//欧基里德距离公式计算向量长度
double RelativeL = Math.Sqrt(Math.Pow(Robot_Template_X - Template_X, 2) + Math.Pow(Robot_Template_Y - Template_Y, 2));
//旋转变换公式
double Rad_Target_R = Run_R * Math.PI / 180;
double Cos_T = Math.Cos(Rad_Target_R);
double Sin_T = Math.Sin(Rad_Target_R);
Target_X = Run_X + RelativeL * Cos_T;
Target_Y = Run_Y - RelativeL * Sin_T;
Target_R = Run_R + Robot_Template_R;
Console.WriteLine(“两点距离GL = {RelativeL}”); Console.WriteLine(“目标点坐标X = {Target_X}”);
Console.WriteLine(“目标点坐标Y = {Target_Y}”); Console.WriteLine(“目标点坐标R = {Target_R}”);
}
}
