相关疑难解决方法(0)

玩完美俄罗斯方块:如何使用缩放和平移来对齐和缩放两条曲线?

给定y轴上的缩放和x轴上的平移(t)的参数,当目的是最大化曲线叠加(不是最小化距离)时,如何缩放和对齐两条不重合的曲线?

正如@DWin所说,这可以改名为"如何与R完美地玩俄罗斯方块",尽管它的应用程度远远超过了赢得俄罗斯方块游戏.

这个问题的变体可能涉及任意数量的刚体变换(旋转,平移和缩放).

给定曲线1

curve1<-data.frame(x=c(1,1,2,2,3),
                   y=c(9,6,6,3,3))

with(curve1, plot(x=x, y=y, type="l", xlim=c(0,10), ylim=c(0,10)))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

和曲线2

curve2<-data.frame(x=c(4,5,5,6,6,7),
                   y=c(2,2,1,1,2,3))

with(curve2, plot(x=x, y=y, type="l", xlim=c(0,10), ylim=c(0,10)))
Run Code Online (Sandbox Code Playgroud)

曲线2

我希望找到最大化两条曲线之间叠加的s和t.

理想情况下,该方法将在R中使用optim.

在这个组成的例子中,t = 3且s = 1/3,所以

t=3
s=1/3

with(curve2, plot(x=x, y=y, type="l", xlim=c(0,10), ylim=c(0,10)))

with(curve1, lines(x=x+t, y=y*s, col="red"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

注意,为了获得这样的拟合,可以具有共识的区域必须具有比不能叠加的区域更高的参数化权重,并且共识区域越大,权重越高.

我一直在探索的小径:

  • 最小化曲线之间的区域
  • 用于叠加两条曲线的算法
  • 使用形状包进行形状分析
  • 迭代最近点(ICP),如果有人在R中实现它或者可以移植其中一个C实现

    使用最大似然的方法的加分点(假设误差的正态分布).

  • geometry curve r curve-fitting

    10
    推荐指数
    2
    解决办法
    2992
    查看次数

    标签 统计

    curve ×1

    curve-fitting ×1

    geometry ×1

    r ×1