线段上的水平和垂直翻转
Posted
技术标签:
【中文标题】线段上的水平和垂直翻转【英文标题】:Horizontal and vertical flip on linesegment 【发布时间】:2013-03-06 15:46:13 【问题描述】:我有一组(c++ 向量)点 (x,y) 定义了一条线。如何实现一个函数,返回样本线,相对于它自己的大小水平和垂直翻转?
【问题讨论】:
您能否举例说明您希望此算法执行的操作或发布您到目前为止的代码? 如你所料,我指的是质心,而不是一个固定点。谢谢回复,太好了 【参考方案1】:我假设您的意思是您没有针对某个固定的原点进行翻转;您正在相对于线的质心翻转。
这是一些伪代码:
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)。这显示在下面的蓝色示例中。
它也适用于几个点,如下面的绿色示例所示。
【讨论】:
以上是关于线段上的水平和垂直翻转的主要内容,如果未能解决你的问题,请参考以下文章
使用PythonOpenCV翻转图像(水平垂直水平垂直翻转)
利用OpenCV的flip()函数实现图像的水平镜像(水平翻转)垂直镜像(垂直翻转)