linesegment上的水平和垂直翻转

时间:2013-03-06 15:46:14

标签: c++ algorithm matrix 2d

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

1 个答案:

答案 0 :(得分: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)到(11,0)的翻转线(-1,-1)至(-5,4)。这在下面的蓝色示例中显示。

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

Excel plot of algorithm results