0
我有一个定义一条线的点(x,y)的集合(C++向量)。我如何实现一个返回样本线的函数,相对于它自己的尺寸水平和垂直翻转?linesegment上的水平和垂直翻转
我有一个定义一条线的点(x,y)的集合(C++向量)。我如何实现一个返回样本线的函数,相对于它自己的尺寸水平和垂直翻转?linesegment上的水平和垂直翻转
我假定你的意思是你不是在翻修一些固定的原点;你正在翻转线的质心。
这里的一些伪代码:
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)
例如,如果我们有一个简单的3点线从(-5,3)〜(7,4)至(11,-1),这将给我们一条从(11,0)到(-1,-1)到(-5,4)的翻转线。这在下面的蓝色例子中显示。
它也适用于几个点,如下图所示的绿色榜样。
可不可以给你想要这个算法做或发布的内容的示例你这么远代码明智?你猜, – sgryzko 2013-03-06 16:06:51
我的意思是关于质心,而不是一个固定点。谢谢你的回复,这很好 – askemottelson 2013-03-06 16:40:47