Questions tagged «graphical-output»

这项挑战涉及在屏幕上绘制图片或生成图像文件。对于纯ASCII艺术比赛,请使用[ascii-art]。如果参与者可以在图形和ASCII艺术作品之间进行选择,请同时使用两个标签。对于图像输入,请使用[图像处理]。

25
创建一个Paint程序!
介绍 有一天,您正在向孩子展示如何在计算机上绘画。您mspaint.exe在运行栏中键入。令您惊恐的是,“没有符合您搜索条件的项目”。您必须创建一个简单的绘画版本,以便您的孩子可以绘画! 挑战 您必须创建一个简单的绘图程序。为此,请打开白色显示窗口(大于99x99像素)。每当按下鼠标时,请将鼠标打开的像素更改为黑色。 这是代码高尔夫球,因此最短答案以字节为单位!

3
计算机生成的纹理墙面涂料
我房间墙壁上的油漆具有随机的,几乎像分形的3维纹理: 在这个挑战中,您将编写一个程序,该程序生成看起来像是我墙壁的一部分的随机图像。 下面,我收集了墙壁上10个不同点的图像。全部具有大致相同的照明,并且全部是在相机距离墙壁一英尺的地方拍摄的。均匀地裁剪边界以使其为2048 x 2048像素,然后将它们缩放为512 x512。上面的图像是图像A。 这些只是缩略图,单击图像可查看完整尺寸! A: B:C:D:E: F: G:H:I:J: 您的任务是编写一个程序,该程序以1到2 16的正整数作为随机种子,并且为每个值生成一个独特的图像,看起来像是我墙的“第十一张图像”。如果有人看着我的10张图片,而您的几张却不知道是计算机生成的,那您做得很好! 请展示一些您生成的图像,以便观众无需运行代码即可查看它们。 我意识到图像中的光照强度或颜色并不完全均匀。对此我感到抱歉,但是如果没有更好的照明设备,这是我能做的最好的事情。您的图像不需要具有可变的光照(尽管可以)。纹理是更重要的重点。 细节 您可以使用图像处理工具和库。 以所需的任何常用方式(命令行,stdin,明显变量等)进行输入。 输出图像可以是任何常见的无损图像文件格式,也可以仅在窗口/浏览器中显示。 您可以以编程方式分析我的10张图像,但不要假定运行您的代码的每个人都可以访问它们。 您必须以编程方式生成图像。您可能没有对我的一张图片或其他一些图片的略微变体进行硬编码。(无论如何,人们会为此拒绝您。) 您可以使用内置的伪随机数生成器,并假定周期为2 16或更大。 计分 这是一次人气竞赛,因此赢得最高投票的答案会赢得胜利。

6
MS Paint被低估
MS Paint总是很浪费时间,但是大多数图形设计师都回避了。可能是因为令人讨厌的调色板或有限的撤消级别使人们失去了兴趣。无论如何,仅使用标准画笔和默认调色板仍然可以生成精美的图像。 挑战 仅使用默认画笔(无角的4x4正方形)和默认调色板(下面的28种颜色),尝试使用基于随机爬山的技术复制源图像。 算法 每个答案必须遵循相同的基本算法(随机爬山)。可以在每个步骤中调整细节。甲运动被认为是刷(即点击漆)的行程。 猜猜下一个动作。根据需要猜测下一个运动的(坐标和颜色)。但是,猜测不能引用源图像。 应用猜测。将画笔应用到绘画上以进行移动。 衡量运动的益处。通过参考源图像,确定运动是否有益于绘画(即,绘画与源图像更相似)。如果有好处,请保留机芯,否则丢弃机芯。 重复直到收敛。转到步骤1并尝试下一个猜测,直到算法充分收敛为止。此时绘画应该与源图像非常相似。 如果您的程序不符合这四个步骤,则可能不是随机的爬山程序。我之所以将它标记为一场流行竞赛,是因为目标是基于有限的调色板和画笔来生成有趣的绘画算法。 制约因素 该算法应该以某种方式是随机的。 下一个猜测不应受到源图像的影响。您正在猜测每个新动作,然后检查它是否有帮助。例如,不允许您根据源图像的颜色来确定将画笔放置在何处(这与抖动源图像类似,这不是目标)。 您可以根据需要调整算法的步骤来影响布局。例如,您可以从边缘开始猜测并向内移动,拖动笔刷为每个猜测创建线条,或者决定先绘制深色。您可以参考先前的迭代图像(而不是源图像)以计算下一个所需的运动。这些可以是您想要的限制(即,仅在当前迭代的左上象限内进行猜测)。 只要您不愿意,就可以测量源图像和当前迭代之间的“差异”,只要它不计算其他潜在移动来确定该移动是否被认为是“最佳”即可。它不应该知道当前运动是否是“最佳”运动,而应该知道它是否符合接受标准的公差。例如,它可以与abs(src.R - current.R) + abs(src.G - current.G) + abs(src.B - current.B)每个受影响的像素一样简单,或者是任何众所周知的色差技术一样简单。 调色板 您可以将调色板下载为28x1图像,也可以直接在代码中创建它。 刷 笔刷是一个无角的4x4正方形。这是它的缩放版本: (您的代码必须使用4x4版本) 例 输入: 输出: 您可以在我制作的短片(每个帧为500次迭代)中看到基本算法的进展情况:星夜。初始阶段值得关注:

15
攻击,衰减,持续,释放
声音合成器使用包络发生器来控制声音的某些参数(例如整体响度)如何随时间变化。在许多合成器中,信封是由四个参数定义的,如维基百科的下图所示: 起音时间(A):第一次按下该键时,信封从零开始达到最大电平所花费的时间。 衰减时间(D):包络达到指定维持水平所需的时间。 延音等级(S):在初始击打和衰减之后,只要按下琴键,该等级就保持不变。 释放时间(R):释放键时信封到达零的时间。 挑战 输入四个参数A,D,S,R并绘制包络线。 参数将是0到127之间的整数值。 的最高水平(在攻击阶段结束时达到)将被假定为127。 维持电平的水平片段将假定具有持续时间64(在实际声音中,该持续时间不是固定的,而是由按住琴键的时间决定的)。 格式和更多详细信息 输出应为光栅或矢量格式的图像。如果是栅格,则折线应在水平方向上至少占据50个像素。 图像可以以标准图像格式显示或生成为文件。可以将文件写入磁盘,也可以将其确切内容输出到STDERR或作为函数返回参数输出。 图形只需要包含定义信封的折线。每个轴的比例可以自由选择。其他元素(如轴线,数字标签或线条颜色)是可选的。 输入方式和格式像往常一样灵活。例如,您可以采用任意顺序的四个数字,也可以包含它们的数组。可以提供程序或功能。禁止出现标准漏洞。 以字节为单位的最短代码获胜。 测试用例 输入采用格式[A D S R]。请注意,每个图中的比例都是不同的(根据比例可以自由选择的规则) [15 30 70 40] [64 64 64 64] [0 10 50 80] [0 0 90 80] [5 50 0 0] [5 50 0 80] [24 32 127 48]

30
显示随机的彩色像素
我一直很喜欢充满随机彩色像素的屏幕。他们很有趣,吸引他们的程序也很有趣。 挑战 用彩色像素填充屏幕或图形窗口。 规则 你的程序必须有一个甚至采摘的机会,所有的颜色(即范围#000000到#FFFFFF),或者可以在系统上显示所有颜色。 您的程序必须继续显示随机像素,直到手动停止(它不能自行终止)。 像素可以是任意大小,只要您的输出至少具有40x40 “像素”即可。 您的程序必须以这样的速度运行,使其可以在运行三分钟后至少替换一次屏幕/窗口上的每个像素。 您的程序必须选择真正随机的颜色和点进行替换,即随机选择所有点/颜色的可能性均等。它不能看起来只是随机的。它必须使用pRNG或更好的pRNG,并且每次输出都不能相同。 您的程序在每次迭代中必须有平等的机会选择所有颜色。 您的程序一次只能替换一个像素。 您的程序无法使用Internet或文件系统(/dev/random和/dev/urandom除外)。 例 如果在随机时间停止输出,则输出可能如下所示: 赢家 每种语言中最短的答案将获胜。玩得开心!

30
像素艺术,第1集:展示超级马里奥
这是我! 今天的任务很简单:编写一个程序或一个函数,在NES上的蓝色背景上显示来自Super Mario Bros的空闲的小Mario小精灵。 任何种类的输入都是有效的,只要它在屏幕/窗口/浏览器的任何位置显示那些12 * 16像素即可。 (编辑:如果您的语言不能做像素画,则可以放大显示的图像。您还可以输出ASCII画或HTML画,但是使用正确的颜色。) 图片(放大400%): 您必须使用以下颜色: 蓝色:#6B8CFF 红色:#B13425 绿色/棕色:#6A6B04 橙色:#E39D25 最短的程序(字符数)获胜! 存在标准漏洞(尤其是不允许网络连接),但是允许在程序中硬编码和显示图像文件。(使用此技巧的条目将单独排名) 开始了! 现任排行榜 仅使用代码的最短答案: Mathematica,141. https://codegolf.stackexchange.com/a/39916/10732(作者MartinBüttner) 击,158. https://codegolf.stackexchange.com/a/40002/10732(由hpsMouse) ... 使用某种硬编码图像的最短答案: HTML,102b。https://codegolf.stackexchange.com/a/39923/10732(由xem和NiettheDarkAbsol撰写) PHP,131b。https://codegolf.stackexchange.com/a/39926/10732(作者NiettheDarkAbsol) ...

15
生成堆栈溢出徽标
面临的挑战是生成类似于StackOverflow徽标的图像: 输出必须包含: 图片尺寸64 * 64或更大 灰色| __ | 异型底座 从底部向上弯曲的分段堆栈。这些片段将从灰色逐渐变为橙色,并向右转90度。段数应在5到7之间,最好是6。 注意:对于缺少颜色的ascii显示器,请使用'0'字符表示灰色,并使用'9'表示橙色。“ 1”到“ 8”将代表它们之间的阴影。 限制条件: 您必须生成图像。禁止加载图像或将其存储在代码/二进制文件中。 附加规则/信息: 图像不必与徽标相同,但是必须能够识别。 显示方法由您决定。将其保存到图像文件或显示在屏幕上都是可以接受的。 评审/获奖标准: 图像的准确性是首要条件 优雅是次要条件

30
生成RGB彩色网格
这个!是RGB颜色网格... 基本上,它是一个二维矩阵,其中: 第一行和第一列为红色。 第二行和第二列为绿色。 第三行和第三列为蓝色。 以下是使用字母R,G和B以图形方式描述的颜色。 这是我们计算网格上每个空间的颜色的方法。 红色+红色=红色(#FF0000) 绿色+绿色=绿色(#00FF00) 蓝色+蓝色=蓝色(#0000FF) 红色+绿色=黄色(#FFFF00) 红色+蓝色=紫色(#FF00FF) 绿色+蓝色=蓝绿色(#00FFFF) 挑战 编写代码以生成RGB彩色网格。 这是代码高尔夫球,因此请尝试以最少的字节数进行操作。 使用任何编程语言或标记语言来生成网格。 我关心的事情: 结果应以图形方式显示具有定义颜色的RGB网格。 我不在乎的事情: 如果输出是图像,HTML,SVG或其他标记。 色块的大小或形状。 块之间或周围的边界,间距等。 绝对不需要标签告诉您行和列的颜色是什么。

30
画瑞士国旗
任务:输出瑞士国旗。 瑞士国庆节快乐/ Schweizer Bundesfeiertag /瑞士国庆日/ Fes nazionale svizzera / Fiasta naziunala svizra! 详细信息: 标记由#FFFFFF红色(#FF0000)背景上的白色()叉组成。十字架由一个6x6的正方形组成,每个侧面粘贴有尺寸为6x7的手臂。十字在32x32正方形背景的中心,每边相距6个单位。(来源) 参与者可以选择输出大小,但是图像必须与这些比例完全匹配,这意味着其大小必须是32的倍数。 最低版本如下所示:

19
绘制/绘制心脏图
您面临的挑战是绘制/绘制以下一颗心。大小必须至少为50x50像素(可以使用矢量图形)。您可以选择要绘制/绘制的心。可以接受轴,网格线等。图形上必须至少有 100个不同的坐标/点。如果需要的话,心脏可以充满色彩。 公式为: 要么 t在范围内[-1, 1]。 要么 要么 这是代码高尔夫球,因此以字节为单位的最短代码(每种语言)获胜。请提供输出(或链接到在线解释器)。

30
单个像素沿圆形路径移动
这是一个图形输出挑战,任务是提供每种语言最短的代码。 任务 您的代码应绘制一个紫色像素(十六进制值#800080或rgb(128,0,128)),顺时针旋转一个圆圈。绕一圈完整的旅程大约需要60秒,并且应无限期地继续。除像素外,其他任何内容都不应显示在屏幕或窗口上。圆的宽度应为屏幕或窗口的宽度的0.75(适当舍入),背景应为白色。为了防止出现笨拙的溶液,屏幕或窗口的宽度至少应为100像素。 您的代码应为完整程序。 语言和图书馆 您可以使用任何喜欢的语言或库。但是,我希望能够在可能的情况下对您的代码进行测试,因此,如果您可以提供有关如何在Ubuntu中运行代码的明确说明,将不胜感激。 缺少前二十种语言。需要帮助。 以下前二十种编程语言目前根本没有任何解决方案。 C,C ++,C#,Python,PHP,Visual Basic .NET,Perl,Delphi / Object Pascal,Assembly,Objective-C,Swift,Pascal,Matlab / Octave,PL / SQL,OpenEdge ABL,R 目录 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以将旧分数保留在标题中,方法是将它们打掉。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在代码段中: ## [><>](http://esolangs.org/wiki/Fish), …

3
创建xkcd样式的叙述图
在更具标志性的xkcd片段之一中,Randall Munroe在叙述图表中可视化了几部电影的时间表: (点击查看大图。) 资料来源:xkcd 657号。 给定电影时间线的规格(或其他一些叙述),您将生成这样的图表。这是一次人气竞赛,因此(净)票数最多的答案将获胜。 最低要求 为了进一步规范,这是每个答案必须实现的最少功能集: 输入一个字符名称列表,然后是一个事件列表。每个事件要么是垂死的字符列表,要么是字符组列表(表示当前在一起的字符)。这是侏罗纪公园叙述如何编码的一个示例: ["T-Rex", "Raptor", "Raptor", "Raptor", "Malcolm", "Grant", "Sattler", "Gennaro", "Hammond", "Kids", "Muldoon", "Arnold", "Nedry", "Dilophosaurus"] [ [[0],[1,2,3],[4],[5,6],[7,8,10,11,12],[9],[13]], [[0],[1,2,3],[4,7,5,6,8,9,10,11,12],[13]], [[0],[1,2,3],[4,7,5,6,8,9,10],[11,12],[13]], [[0],[1,2,3],[4,7,5,6,9],[8,10,11,12],[13]], [[0,4,7],[1,2,3],[5,9],[6,8,10,11],[12],[13]], [7], [[5,9],[0],[4,6,10],[1,2,3],[8,11],[12,13]], [12], [[0, 5, 9], [1, 2, 3], [4, 6, 10, 8, 11], [13]], [[0], [5, 9], [1, 2], [3, …

4
有时我需要一个无损的截屏大小调整器
有时我需要编写更多的文档,而不仅仅是代码中的注释。有时,这些解释需要屏幕截图。有时,获得这样的屏幕截图的条件太奇怪了,以至于我要求开发人员为我拍摄屏幕截图。有时屏幕截图不符合我的规格,因此我必须调整其大小以使其看起来不错。 如您所见,需要魔术“ Lossless Screenshot Resizer”的可能性很小。无论如何,对我来说似乎每天都需要它。但是它还不存在。 我以前在PCG上见过您解决过很棒的图形难题,所以我想这对您来说很无聊... 规格 该程序将单个窗口的屏幕截图作为输入 屏幕截图不使用玻璃效果或类似效果(因此您不需要处理任何会发光的背景材料) 输入文件格式为PNG(或其他任何无损格式,因此您不必处理压缩工件) 输出文件格式与输入文件格式相同 该程序将创建不同大小的屏幕截图作为输出。最低要求正在缩小。 用户应指定预期的输出大小。如果您可以提供有关程序可以根据给定输入产生的最小大小的提示,那将很有帮助。 如果人为解释,则输出屏幕截图的信息一定不能少。您不应删除文本或图像内容,而应仅删除具有背景的区域。请参阅下面的示例。 如果无法获得预期的大小,程序应指出这一点,而不仅仅是崩溃或删除信息,而无需另行通知。 如果程序指示出于验证原因将删除的区域,则应该增加其受欢迎程度。 该程序可能需要一些其他用户输入,例如,标识优化的起点。 规则 这是一次人气竞赛。在2015-03-08票数最多的答案被接受。 例子 Windows XP屏幕截图。原始大小:1003x685像素。 可以删除示例区域(红色:垂直,黄色:水平),而不会丢失任何信息(文本或图像)。请注意,红色条形不是连续的。此示例并未指出所有可能被删除的像素。 无损调整大小:783x424像素。 Windows 10屏幕截图。原始尺寸:999x593像素。 可以删除的示例区域。 无损调整大小的屏幕截图:689x320像素。 请注意,标题文本(“下载”)和“此文件夹为空”也可以不再居中。当然,如果居中,那会更好,而且,如果您的解决方案能够做到这一点,它应该会越来越受欢迎。

12
首要奇偶校验
这种挑战的目的是为了描绘图形平面上,其中,每个步骤的方向散步是由素性确定及其二进制展开的奇偶性。特别,ķkkķkk 初始方向是固定的,例如北。 所有步骤的长度相同。 步骤的方向可以是北,西,南或东,并确定如下: ķkk 如果不是素数,则方向不会改变。ķkk 如果是素数,的二进制展开拥有者的偶数,右转。ķkkķkk 如果是素数,的二进制展开具有奇数个1,左转。ķkkķkk 作为一个可行的示例,假设初始方向是北。第一步是: k = 1k=1k=1不是素数。因此,我们朝当前方向(北)移动了一步。 k = 2k=2k=2是质数,并且其二进制扩展10数具有奇数个。所以我们左转,现在正对着西方。我们朝这个方向迈出了一步。 k = 3k=3k=3是质数,它的二进制扩展11数,具有偶数个。因此,我们向右转,现在正对着北方。我们朝这个方向迈出了一步。 k = 4k=4k=4不是素数。因此,我们朝当前方向(北)移动了一步。 挑战 输入:正整数。ñNN 输出:如上定义的步走的图。ñNN 附加规则 的初始方向可以自由地选择(不一定北),但应该是全部相同。ñNN 的转动规则可以是与上述相反,即,右转奇校验并放置甚至; 但是对于所有它必须相同。ñNN 输出必须是步行的图形描述。例如: 可以用线段绘制步行。 可以使用标记(例如点)来显示访问点;有或没有连接线段。 可以提供两种颜色的光栅图像,一种颜色对应于已访问的点,另一种颜色则用于未访问的点。 水平轴和垂直轴的比例不必相同。轴标签和类似元素也是可选的。只要可以清楚地看到步行,该情节就是有效的。 请注意,某些点被多次访问。情节对此并不敏感。例如,如果在曲线图中显示了线段,则无论其经过多少次,每个单位段都将显示为相同。 该代码应适用于任何N给定的无限资源。如果在实践中N由于时间,内存或数据类型的限制而导致故障很大,则可以接受。 输入和输出像往常一样灵活。特别地,可以使用用于输出图像的任何标准装置。 以字节为单位的最短代码获胜。 测试用例 下图以北为初始方向。甚至平价向右转;并用线段描绘了步行路线。 N = 7: N = 3000: N = 20000: N = …

3
建立美观的除数树
美观的除数树是输入的除数的树n,对于任何合数m,具有的两个孩子的节点对除数是最接近的平方根的m。左节点应为的较小除数,m右节点应为的较大除数m。树中的素数不应有子节点。您的树可能是文字艺术或图像的形式。文字艺术输出的规则如下。 间距规则 为了使树上的节点间隔开,我们有以下规则: 从根到给定深度的节点应全部位于输出中的同一行文本上。 / \不/ \ / \ / 3 2 3 2 对于左节点,如果节点是一个数字,则输入分支应该在右上角,否则在最后一个数字的正上方。例: /与/ 3720 对于右边的节点,如果节点是一位数字,则输入分支应该在左上角,否则在第一位数字的正上方。例: \ AND \ 7243 对于传出的左分支,分支应在数字左侧开始一个空格。例: 275 / 11 对于传出的右分支,分支应在数字右边开始一个空格。例: 275 \ 25 树的同一层上的任何两个节点之间至少应有两个空格。同时,在树的同一层上的任何两个子树之间的空间应尽可能少。 该树不起作用,因为“子树”太近了。 504 / \ / \ / \ / \ 21。24 / \。/ \ / \。/ \ 3 7. …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.