问题标签 [2d]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
3592 浏览

algorithm - 目前认为 2D 点匹配的“最佳”算法是什么?

我有两个包含 xy 坐标(星)的列表。我还可以将星等(亮度)附加到每颗恒星上。现在每颗星星都有随机的位置抖动,每张图像中可能会有一些额外或缺失的点。我的问题是,“对于这样的数据集,最好的 2D 点匹配算法是什么?” 我猜对于简单的线性(平移、旋转、缩放)和非线性(例如,坐标中的 n 次多项式)都是如此。在点匹配领域的行话中,我正在寻找能够在具有噪声和伪点的 2D 点匹配程序之间的枪战中获胜的算法。可能会有不同的“赢家”,这取决于是否使用了标签信息(幅度)和/或转换是否被限制为线性。

我知道有许多类的 2D 点匹配算法和每个类中的许多算法(实际上可能总共有数百个),但我不知道哪个(如果有的话)被认为是“最好的”或“最标准的”计算机视觉领域的人们。可悲的是,我想阅读的许多文章都没有在线版本,我只能阅读摘要。在我决定实施一个特定的算法之前,最好听听几位专家的意见,把小麦从谷壳中分离出来。

我有一个使用三角形的有效匹配程序,但它经常失败(大约 5% 的时间),因此解决方案转换有明显的扭曲,但没有明显的原因。这个程序不是我写的,而是来自大约 20 年前写的一篇论文。我想编写一个性能最强大的新实现。我假设(希望)在这一领域取得了一些进展,这使得这变得合理。

0 投票
5 回答
9627 浏览

algorithm - 在面板上放置随机不重叠的矩形

我有一个 X x Y 大小的面板。我想在这个面板上放置最多 N 个随机大小的矩形,但我不希望它们中的任何一个重叠。我需要知道这些矩形的 X、Y 位置。

算法,有人吗?

编辑:所有 N 个矩形一开始都是已知的,可以按任何顺序选择。这会改变程序吗?

0 投票
3 回答
7709 浏览

python - Pygame:精灵因运动方向而改变

我昨天刚开始学习如何使用pygame。我读过这本非常有用的书,并遵循了它的所有教程、示例和内容。我想尝试制作一个非常简单的横向卷轴/平台游戏,但是这本书很快就进入了 3D 建模,没有说明如何为上下左右的移动制作变化的精灵以及如何循环播放动画图像。

我今天花了所有时间试图让一个精灵显示并能够上下左右移动。但由于脚本简单,它使用静态图像并且拒绝更改。

谁能给我一些有关如何更改精灵的知识。或者发给我一个教程?

每个参考和尝试它的人一直在使用生成的形状,所以我永远无法使用它们。

非常感谢任何帮助。

补充:在弄清楚如何在我的场景中放置复杂的动画之前,我想知道如何让我的“播放器”更改为关于我向左或向右按​​下的不动图像。如果人们知道它真的很复杂,也许是对角线。

补充:这是我到目前为止所整理的。http://animania1.ca/ShowFriends/dev/dirmove.rar是否有可能使方向/动作设置动作的列,并让小列设置代码也使它在循环中循环执行动画片?(或者这会是对效率的严重误用吗?)

0 投票
1 回答
3677 浏览

python - Pygame:Sprite 动画理论 - 需要反馈

在对一些代码进行了一些调整后,我从某人那里得到了一个字符图像在其方向和上下左右输入方面移动,我把它放在一起:(希望代码不会太乱)

角色移动代码 + IMG

Sprite 表仅纵向运行,因此基本上每个 sprite 部分都是不同的动作。现在有没有一种方法可以制作一个与当前代码一起运行的代码,以便从一组“动作”循环下来以制作动画?

例如:“向左跑”是精灵 3。那么在我们指定该列之后,是否可以循环运行动画的多少帧(比如说 4)以制作动画?

示例图片: http ://animania1.ca/ShowFriends/dev/example.jpg替代文字

0 投票
5 回答
4043 浏览

java - 平滑的网格移动

我正在使用网格系统开发 Java Bomberman 克隆,但我现在对这个动作并不满意。当玩家按下移动键时,角色开始移动(速度为 0.25)。玩家失去控制,角色继续移动,直到它移动了一个完整的瓷砖。玩家只有在角色到达下一个图块的中心时才能重新获得控制权。

这使得它太“滞后”了。如果我现在想改变方向,我做不到。

也许我可以让角色的底部小于精灵的大小,这意味着我必须在角落之前检查它是否是有效的移动。有什么想法吗?

谢谢!

0 投票
4 回答
4153 浏览

algorithm - 计算 3D 高度图的轮廓?

我正在寻找一个函数或示例来生成表示高度图中特定高度的轮廓的线条列表。

例如,

其中 Heights 是一个 512x512 的浮点值数组,HeightValue 是应绘制轮廓的高度。高度可能包含该特定高度的多条线(例如马鞍或岛链)

有没有人有或知道在哪里可以得到一个算法来生成这个?

0 投票
8 回答
23829 浏览

math - 逆双线性插值?

我有四个 2d 点,p0 = (x0,y0), p1 = (x1,y1) 等,它们形成一个四边形。就我而言,四边形不是矩形,但至少应该是凸的。

我正在使用双线性插值。S 和 T 在 [0..1] 范围内,插值点由下式给出:

这是问题所在。我有一个二维点 p,我知道它在四边形内。我想找到在使用双线性插值时会给我那个点的 s,t。

是否有一个简单的公式来反转双线性插值?


感谢您的解决方案。我将 Naaff 解决方案的实现发布为 wiki。

0 投票
2 回答
8184 浏览

c# - 使用 SlimDX 绘制 2D

您好,我无法使用 SlimDX 正确渲染精灵。它像 .NET 绘图 DrawImageUnscaled 一样绘制了一些缩放。我没有使用任何转换。

在里面:

渲染:

编辑:如果您不知道如何想象错误的渲染,这里是我渲染和参考的内容(忽略那个白色,它只是透明的 PNG)。注意第一张图像是如何 缩放

0 投票
2 回答
1348 浏览

graphics - 开罗路径上的布尔运算?

有没有办法在开罗通过布尔运算(例如 Union、Difference 和 Intersection)将两条路径组合在一起来构建路径?我正在开发一个矢量图形应用程序,该应用程序使用 Cairo 进行渲染,并希望让我的用户能够以这种方式将路径组合在一起,但我在 Cairo 找不到方法。

0 投票
3 回答
8168 浏览

algorithm - 将巧克力棒分成等份的算法

一个随机的想法突然出现在我的脑海中(当然是在我分享巧克力棒的时候!)。我想知道是否有通用算法来解决这个问题。

问题是这样的:

信息

1. 你有一块巧克力棒,上面有排列成矩形矩阵的小方块
2. 房间里有 n 个人

问题编写一个算法,输出最优配置 (pxq),其中在以下限制

条件下,条形可以在人们之间平均共享: 1. 不能将小方块(单位方块)切割成更小的部分2. 所有休息都必须是完全沿一个轴进行3. 断裂的总数不能超过 n (这是为了阻止低效的解决方案,例如尝试将整个杆分成小块并将小块分成小块)4. p 或 q 不能相等to 1. yx 在其中一个答案中指出,如果一侧有 1 bar,则问题很容易解决。然而,这对于现实世界的情况来说并不是一个好的解决方案——这是解决这个问题的目的:)示例n, n-1, n-2...., 2, 1








对于 n = 4,最佳配置是 4 x 3。

这种配置可以分为:

4 人在沿垂直轴的
3 个休息时间 3 人在水平轴上有 2 个休息时间2
人在中间有 1 个休息时间

其他经验解决方案是栏的子集(如果适用)。为了更好地说明这一点,假设您有一个像这样的 2 x 2 巧克力棒:(n, p, q) = (1, 1, 1); (2, 2, 1); (3, 3, 2); (4, 4, 3); (5, 5, 12); (6, 6, 10) OR (6, 5, 12)


传统观点认为,您需要进行 2 次中断(中间的垂直轴 - 向下和交叉)才能将此条分成 4 块。然而,在现实世界中(如果它是一块巧克力棒),你会先把它分成两半,然后再分别分开每一半。这使得总共 3 次休息 - 1 次休息在整个酒吧和 2 次休息在酒吧的 2 个不同的子组。

我在互联网上的任何地方都找不到解决方案 - 如果有人认为这不是与编程相关的问题或解决方案已经存在,请随时关闭问题 =)