几何尺寸与公差论坛

 找回密码
 注册
查看: 1845|回复: 2

visionpro的CogRectangleAffine在旋转之后,有函数能直接拿到4顶点坐标吗?

  [复制链接]
发表于 2023-10-18 17:40:34 | 显示全部楼层 |阅读模式
// 假设你已经有一个CogRectangleAffine对象名为rectangleAffine

// 获取包围盒的中心点坐标
double centerX = rectangleAffine.CenterX;
double centerY = rectangleAffine.CenterY;

// 获取包围盒的宽度和高度
double width = rectangleAffine.SideXLength;
double height = rectangleAffine.SideYLength;

// 获取包围盒的角度(弧度)
double angle = rectangleAffine.Rotation;

// 计算四个顶点相对于中心点的偏移量
double offsetX = width / 2 * Math.Cos(angle) - height / 2 * Math.Sin(angle);
double offsetY = width / 2 * Math.Sin(angle) + height / 2 * Math.Cos(angle);

// 计算四个顶点的坐标
double[] vertexX = new double[4];
double[] vertexY = new double[4];

vertexX[0] = centerX + offsetX;
vertexY[0] = centerY + offsetY;

vertexX[1] = centerX - offsetX;
vertexY[1] = centerY - offsetY;

vertexX[2] = centerX - offsetX;
vertexY[2] = centerY - offsetY;

vertexX[3] = centerX + offsetX;
vertexY[3] = centerY + offsetY;

// 打印顶点坐标
for (int i = 0; i < 4; i++)
{
    Console.WriteLine("顶点 {0}: ({1}, {2})", i+1, vertexX[i], vertexY[i]);
}
 楼主| 发表于 2023-10-18 17:40:47 | 显示全部楼层
上述代码通过计算中心点坐标、宽度、高度和角度,以及顶点相对于中心点的偏移量,计算出CogRectangleAffine包围盒旋转后的四个顶点坐标。

请注意,这里假设CogRectangleAffine包围盒是相对于图像的原点进行旋转的。如果旋转中心不是图像的原点,你可能需要根据具体情况进行适当的调整。
 楼主| 发表于 2023-10-20 10:01:33 | 显示全部楼层
本帖最后由 test0730 于 2023-10-20 10:02 编辑

openai这段写得不行....存在形变的情况,专业软件写得不好,还得练
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|几何尺寸与公差论坛

GMT+8, 2024-12-22 12:59 , Processed in 0.037451 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表