test0730 发表于 2023-10-18 17:40:34

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

// 假设你已经有一个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;
double[] vertexY = new double;

vertexX = centerX + offsetX;
vertexY = centerY + offsetY;

vertexX = centerX - offsetX;
vertexY = centerY - offsetY;

vertexX = centerX - offsetX;
vertexY = centerY - offsetY;

vertexX = centerX + offsetX;
vertexY = centerY + offsetY;

// 打印顶点坐标
for (int i = 0; i < 4; i++)
{
    Console.WriteLine("顶点 {0}: ({1}, {2})", i+1, vertexX, vertexY);
}

test0730 发表于 2023-10-18 17:40:47

上述代码通过计算中心点坐标、宽度、高度和角度,以及顶点相对于中心点的偏移量,计算出CogRectangleAffine包围盒旋转后的四个顶点坐标。

请注意,这里假设CogRectangleAffine包围盒是相对于图像的原点进行旋转的。如果旋转中心不是图像的原点,你可能需要根据具体情况进行适当的调整。

test0730 发表于 2023-10-20 10:01:33

本帖最后由 test0730 于 2023-10-20 10:02 编辑

openai这段写得不行....存在形变的情况,专业软件写得不好,还得练
页: [1]
查看完整版本: visionpro的CogRectangleAffine在旋转之后,有函数能直接拿到4顶点坐标吗?