这些只是缩略图,请单击它们以查看完整尺寸!
(我是用Algodoo制作的。)
此类图像始终具有以下属性:
- 它们始终是白色背景的400×400像素。(由于SE图像有损压缩,因此可能不是完全白色。)
- 它们有1至4个相同的梨,每个梨都以(几乎)任何方式旋转和定位。
- 他们有一个垂直的钢制斜槽,直达图像的底部。
- 除了滑槽的底部以外,滑槽和梨形边界框(例如边界框)永远不会触碰或超出图像边界。
- 梨的边界框永远不会相互重叠,也不会与斜槽重叠。
- 如在B,C和D中,梨可能在滑槽的倾斜部分下面。(因此,溜槽的边界框可能与梨的边界框重叠。)
- 溜槽可以有任何水平和垂直位置,只要有足够的空间让梨的所有包围盒自由地放置在其上即可(不会测试“几乎不适合”的情况),并且可以看到部分圆柱。
挑战
编写一个程序,获取这样的图像,并在相同的位置放置滑槽,再输出另一个400×400的图像,但是将梨重新放置,使它们都位于滑槽的上方(这样它们就可以掉入其中并被榨汁,没什么)。
输出图像的要求是:
- 输入图像中的所有梨都必须重新放置,以使其位于滑槽上方,漏斗左右边缘之间。(以上的边缘是不正常。)
- 每个梨必须保持其旋转角度。(因此,您应该剪切和粘贴梨子,而不是重新绘制它们。)
- 梨不得重叠或彼此接触或与滑槽接触。(但是,梨形边框可能会重叠。)
- 梨不能触摸或超出图像范围。
以下是这五个样本图像的有效输出示例:
这些只是缩略图,请单击它们以查看完整尺寸!
请注意,E的输入图像已经是有效的输出,但是在技术上不必要时重新排列梨就可以了。
细节
- 通过stdin /命令行/函数调用获取图像的文件名或原始图像数据。
- 将图像输出到具有您选择的名称的文件,或将原始图像文件数据输出到stdout或仅显示图像。
- 可以使用任何常见的无损图像文件格式。
- 可以使用图形和图像库。
- 到处都有一些不正确的像素(由于有损或其他原因)并不重要。如果我无法从视觉上分辨出任何错误,那么可能就可以了。
以字节为单位的最短代码获胜。Tiebreaker是票数最高的职位。
既然我有可汗学院的帐户,并且似乎很适合在那里解决,我可以在可汗学院解决它吗?并发症只有一种:不允许使用外部图像。幸运的是,我可以通过它来运行图像,以将其转换为可汗学院友好的数据。这可以接受吗?
—
BobTheAwesome
@BobTheAwesome因此,您想发布一个JavaScript答案吗?很好,尽管应该输入和输出400x400图像。您可以发布您的作品来展示您是如何使用KA制作的,但是如果它不能在400x400的图像上使用,我可能不会接受它作为赢家。
—
加尔文的爱好
完美的巧合;汗学院(Khan Academy)碰巧对Javascript + Pjs具有默认的400x400px画布。
—
BobTheAwesome
没有!!Imagenator在400x400图像上超级慢!
—
BobTheAwesome