0

我有一组定义线的点(x,y)(c++向量)。如何实现一个函数,该函数返回样本线,相对于其自身大小水平和垂直翻转?

4

1 回答 1

3

我假设您的意思是您没有针对某个固定的原点进行翻转;您正在相对于线的质心翻转。

这是一些伪代码:

Get the min and max y and x in the vector
Height = yMax - yMin
Width = xMax - xMin
yCentroid = yMin + (Height / 2)
xCentroid = xMin + (Width / 2)

for each point...
  xNew = xMax - (xOld - xMin)
  yNew = yMax - (yOld - yMin)

例如,如果我们有一条从 (-5, 3) 到 (7, 4) 到 (11, -1) 的简单 3 点线,这将给我们一条从 (11, 0) 到 (-1) 的翻转线, -1) 到 (-5, 4)。这在下面的蓝色示例中显示。

它也适用于几个点,如下面的绿色示例所示。

算法结果的Excel图

于 2013-03-06T15:59:39.667 回答