visionpro根据不连续的区域拟合圆
代码如下:
public override bool GroupRun(ref string message, ref CogToolResultConstants result)
{
// To let the execution stop in this script when a debugger is attached, uncomment the following lines.
// #if DEBUG
// if (System.Diagnostics.Debugger.IsAttached) System.Diagnostics.Debugger.Break();
// #endif
try
{
//初始化fitCircle工具
Outputs.Flag = false;
int num = Tools.CogFitCircleTool1.RunParams.NumPoints;
for (int i = 0; i < num; i++)
{
if(Tools.CogFitCircleTool1.RunParams.NumPoints > 0)
Tools.CogFitCircleTool1.RunParams.DeletePoint(0);
}
// Run each tool using the RunTool function
foreach(ICogTool tool in Tools)
{
if (tool.Name.Contains("CogFindCircleTool"))
{
RunTool(tool, ref message, ref result);
//是否接受
if (tool.RunStatus.Result == CogToolResultConstants.Accept )
{
CogFindCircleTool mCir = tool as CogFindCircleTool;
//抓住的圆的点的数量
int mCirclureAreFoundPointNum = mCir.Results.NumPointsFound;
//3个点可以拟合圆,大于三个,将点添加到拟合圆工具中
if (mCirclureAreFoundPointNum > 3)
{
for (int i = 0; i < mCirclureAreFoundPointNum; i++)
{
//循环将第i个FindCircle中的接受点 添加到拟合圆工具中
if (mCir.Results[i].Found&&mCir.Results[i].Used)
{
Tools.CogFitCircleTool1.RunParams.AddPoint(mCir.Results[i].X, mCir.Results[i].Y);
}
}
}
}
}
}
//运行工具
RunTool(Tools.CogFitCircleTool1, ref message, ref result);
Outputs.Flag = true;
}
catch
{
Outputs.Flag = false;
}
return false;
}
问题描述如下:
我们需要去拟合一个圆出来,找圆工具只能帮我们忽略部分点位。但是如果产品某区域有问题,需要舍弃某区域,利用不连续的区域去获得圆的各项数据,如何操作?
工具大致如下
结束。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具