gpt4 book ai didi

algorithm - 如何获得由具有透明度的图像定义的任意形状,使其相互对齐,从而使两者之间没有接缝?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:09:51 24 4
gpt4 key购买 nike

我有一个应用程序,用户可以在其中拖动他们的图像 (.png) 在虚拟表上四处移动。这些图像具有形状 - 大部分是规则的多边形,但也有一些拼图、俄罗斯方 block 等。

我希望形状在被拖动时能够像两个拼图一样相互对齐。(就像在 MS Word 中的“对齐网格”)

我怎样才能做到这一点?

约束:

速度:这将在用户拖动图像时发生,或者在放置时发生。因此算法必须是快速的(实时的)。可以拖动任意数量的图像,并且可以捕捉任意数量的静止图像。

没有进一步的用户输入:除了打开图像文件和拖动图像之外,用户不需要做任何事情。

可能性:

使用某种凹包算法 + 简化,然后匹配边长。这个问题是不能保证用户的边缘是直的/明确的。

对图像的透明部分使用拉普拉斯变换(边缘检测),然后将这些区域视为带正电和带负电的区域,并使用物理模拟来找出它们如何对齐在一起。限制:速度、调整。

我目前只是假设图像是常规镶嵌图案之一:矩形、三角形或六边形,然后从那里开始工作。但我更喜欢与其他形状配合使用的东西。

最佳答案

每个形状都应该有一些引用点和它们之间的(可能是弯曲的)线。如果您需要捕捉两个形状,那么最简单的方法是首先匹配那些引用点,如果它们匹配,那么您可以匹配每两对点之间的线。线的编码方式应使您不需要一些数学处理来匹配它们,只需匹配线的参数即可。

拿俄罗斯方 block 。每个 block 在网格交叉点上都有引用点,每条线都是一条直线。正方形有 8 个点和线,L 形有 10 个点/线。首先匹配引用点,然后匹配每个形状上的相同点之间是否有线(并考虑线的方向)。

以拼图游戏为例。通常你有 4 个点/线,但线是一些任意曲线。您可以实际使用数学曲线,但您也可以为每条曲线设置一些拼图曲线索引。当您尝试匹配两 block 时,您首先匹配引用点,然后通过简单地比较它们的索引来匹配曲线,包括它们的线方向和它们的索引配对。

关于algorithm - 如何获得由具有透明度的图像定义的任意形状,使其相互对齐,从而使两者之间没有接缝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3343632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com