Questions tagged «graphical-output»

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

1
绘制双曲平面细分
在双曲平面上绘制细分图(Poincare盘),例如: 该程序有四个输入: 1)多少个边/多边形(在此示例中为3个)。 2)每个顶点有多少个相交(在此示例中为七个)。 3)要渲染的距离中心顶点有几步(如果仔细观察,此示例中为5)。这意味着包含一个顶点,前提是可以从中心以5步或更少的步长到达该顶点。如果同时包含两个顶点,则渲染边缘。 4)图像的分辨率(单个像素,图像为正方形)。 输出必须是图像。边缘必须渲染为圆弧,而不是直线(庞加莱圆盘投影将线变成圆)。点不需要渲染。当用户放入非双曲线的内容时(即在每个顶点处有5个三角形相交),该程序不必正常工作。这是代码高尔夫球,因此最短的答案为准。

1
和臭气-第一部分
设置 考虑一个包含29个编号单元格的奇怪形状的盒子,如下图1所示。 在此2D盒子内有两种正方形动物:粗毛和臭鼬。图1(a)用蓝色显示了一些粗枝,用红色显示了一些臭味。每个生物恰好占据一个网格单元。该盒子可能包含0到26个粗线之间的任何位置,但始终只包含两个臭鼬。 在重力作用下,碎片和臭气坐在盒子的底部,堆积在它们下面的任何物体的顶部。这两个物种都非常懒惰,并且永远静止不动。 该框还包含一个圆点,用黑色正方形表示,恰好占据一个网格单元。该STOT是不受到重力。 如图所示,该盒子具有位于单元28底部的一个开口。 为了以文字形式表示框中的粗线,阴茎和茎的配置,我们使用29个字符的字符串(每个网格单元一个字符),按枚举顺序.表示,表示一个空单元格,o表示一条粗线,x表示一个污点,并@代表矮胖。例如,图1(a)的配置由字符串表示.........@...o....ooo..xox...。 操作方式 盒子可以旋转 90°的任意倍数。当盒子旋转时,叶屑和臭虫在它们的网格内保持静止。旋转完成后,它们会直接向下掉落,直到i)它们被下面的墙壁堵住;ii)它们被下面的小树枝,sm茎或草梗堵住;或者iii)它们掉落到单元格28的孔中并退出框。矮脚不会掉下来;即使生物停留在其当前细胞上,它也保持固定在其当前细胞中。 在生物掉落并达到新的稳定状态之前,不能再次旋转盒子。 从字面上看,框旋转表示+为顺时针旋转90°,旋转|180°和-逆时针旋转90°。 此外,可以在四个罗盘方向上以一个网格单元为增量移动笔杆。举动可能不会:i)引起桩与生物之间的碰撞(即,目标网格单元必须为空),ii)导致桩与壁之间的碰撞,或者iii)导致桩通过以下方式离开箱子单元格28中的孔。 另外,如果小脚上有任何生物(相对于当前重力),小脚也可能不会移动。 以文字,STOT移动被记<左,>右,^对了,v对了。总是相对于图中所示的“标准”(非旋转)框架指定点移动。也就是说,如果该笔杆位于单元格10中,则移动^将始终将其移动到单元格5中,并且该移动>将始终将其移动到单元格11中。框的方向不会影响移动的方向。 使用从左到右的字符串对操作序列进行编码。例如,字符串+<<^-表示盒子顺时针旋转90°,然后针杆左移两次并向上移动一次(相对于标准框架),然后盒子逆时针旋转90°回到其原始方向。 挑战 出于非常好的原因(我无法透露),我们希望从包装盒中拔出所有胡扯,而又不拔出一个sm子。为此,我们可以使用上面具体描述的操作。 在解决此问题之前,我们应该模拟一下各种操作将如何影响包装盒的内容,这是此挑战的重点。 您必须编写一个程序,该程序接受来自stdin(或等效)的两个参数: 描述盒子初始状态的字符串 一系列的操作 您可以假设这两个参数在语法上都是有效的,该框以标准方向开始,并且该框的初始状态是稳定且合法的。 程序必须输出到stdout(或等效的)以下之一: (情况1)如果移动顺序合法(不违反短杆移动规则)并且不导致任何臭味离开盒子,盒子的最终状态,用字符串表示。盒子的最终方向并不重要。 (案例2)单个感叹号!,如果移动顺序不合法或导致任何臭味离开盒子 计分 获胜的程序是按字节数计算的最短程序,它受制于一些非常有利可图的奖金乘数: 如果不是为情况1打印编码的输出,则声明为0.65的乘数,程序将使用包装字符,臭味,臭脚和空单元格的规范字符,以最终状态和方向输出盒子的ASCII图片,而不是输出情况1的编码输出,并放置一个*单元格中位于孔28外部的单元格中。前导和尾随空格将被忽略。 例如,如果将图1(a)旋转90°,则输出为 . . ..... .o... xo.@. *ooo.. x . 如果不是为情况1打印编码的输出,则程序要求输出0.22的乘数,该程序将输出图像文件或显示GUI窗口,并以最终状态和方向显示框的图片。图片应采用图1(a)的样式,并使用彩色框显示网格单元,墙壁和生物/脚架。 如果不是为情况1打印编码输出,则程序声明0.15的乘数,该程序将输出动画的.gif或动画的GUI窗口,以1秒的间隔显示模拟中的所有中间状态。适用与0.22乘数相同的图像规则。动画的第一帧应描绘模拟的初始状态。此外,动画应显示“隐藏”的中间状态,即 旋转后,每动画帧中的小球/ mols进入稳定配置的状态 盒子在180°旋转的中间90°旋转状态 如果程序产生上述样式的动画.gif或动画GUI窗口,但以20 fps的速度运行并显示,则声明乘数为0.12 盒子旋转的平滑连续动画 平滑,连续地动画显示小脚移动,以及滑倒的小草/臭虫处于稳定状态 穿过盒子28孔掉落的碎片应显示为从盒子中出来,并且应该完全消失在外面。您可以为动画选择自己的时间,只要执行不超过1次/秒即可。 总分是floor( base …

3
让我们模拟一个随机的雪花
我在https://mathematica.stackexchange.com/上看到了这个问题,我认为这很酷。让我们用其他编程语言来制作雪花。 这是原始问题的引文: “现在是季节。现在是时候向Mathematica Stack Exchange提出我的第一个问题了。因此,这是您寻求图形(和P-Chem?)专家的假期任务。 生成(随机)雪花的最佳代码是什么?我的意思是指具有不同形状的形状,这些形状将模仿真实雪花所呈现的多样性。这是一个有想法的链接:http : //www.its.caltech.edu/~atomic/snowcrystals/,更具体地说,这里是不同类型的雪花:http : //www.its.caltech.edu/~atomic /snowcrystals/class/class.htm。在这里,我们尝试生成单个雪花(可能具有不同的参数以调整其形状),越真实,效果越好。也欢迎使用三维渲染来增加透明度和颜色。释放您的幻想,超越通常的分形! 规则: 生成随机的单个雪花。 薄片应具有六倍的径向对称性。 不需要现实。(但更喜欢) 不允许使用单个字符的答案,例如*,⚹,❅,❄,❆。 多数投票获胜!

9
在源内编码图像
高尔夫挑战是在源文件中编码和压缩以下图像。 为此,您需要编写3个函数:red,green和blue,它们接受图像的x / y坐标并返回0-255之间的相应R / G / B像素值。 这是C / C ++测试代码: #include <stdio.h> #include "your_file" int main() { int x, y; for(y = 0; y < 32; ++y) for(x = 0; x < 32; ++x) printf("%i %i %i\n", red(x, y), blue(x, y), green(x, y)); } 以及输出:http : //pastebin.com/A770ckxL(您可以使用它来生成图像数据) 规则和详细信息: …

6
亚像素缩放
您的任务是拍摄24 BPP sRGB图像,并将同一图像放大3倍后输出为红色,绿色和蓝色子像素。生成的图像将完全由纯黑色,红色,绿色和蓝色像素组成。 源图像中的每个像素在缩放时都会产生9个子像素的排列,这些子像素可以打开或关闭(即它们各自的颜色或黑色)。具体安排使用红色,绿色和蓝色的三列,顺序如下: (请注意,这些“像素”上的边框仅用于演示。) 由于这9个子像素中的每一个只能打开或关闭,因此您将必须对输入图像进行量化,并使用不同的子像素图案来实现3级亮度。 对于图像中的每个子像素: 对于0-74的色阶,所有子像素应为黑色。 对于颜色级别75-134,中间子像素应为相应的颜色,其他两个应为黑色。 对于135-179的色阶,中间的子像素应为黑色,而其他两个应为各自的颜色 对于180-255的色阶,所有三个子像素应为各自的颜色 我选择这些级别范围是因为这些恰好看起来不错 将此变换应用于图像中的每个像素,然后输出子像素放大的图像。 单像素示例 rgb(40,130,175)将产生以下模式: rgb(160,240,100)将产生以下模式: 完整图片示例 图片来自维基百科 规则和注意事项 输入和输出可以采用任何方便的格式,无论是实际的图像文件还是RGB值列表(可能是嵌套的)。 您可以假设像素位于24BPP的sRGB色彩空间中。 打高尔夫球快乐!

6
图像的反向拜耳滤波器
几乎所有的数码相机传感器都组织在一个光电传感器网格中。每个光电传感器都对三种原色之一敏感:红色,绿色和蓝色。这些光传感器的组织方式被称为拜耳滤镜,其发明者伊士曼·柯达(Eastman Kodak)的布莱斯·拜耳(Bryce Bayer)。拍摄图像后,四个光电传感器组成最终图像中一个像素的RGB值。您的任务是反转该过程,并根据其像素的滤镜颜色为其着色。为了简单起见,我们将忽略伽马校正。 例如:“常规”正向拜耳过滤器步骤为: 潘通蜂蜡色的光线照射到传感器上; BGGR(蓝-绿/绿-红)滤镜将其分解为四射线。 四个光线照射到传感器上,显示为:81-168/168-235(传感器值范围为0-255); 拜耳滤镜将其转换为一个具有颜色(235、168、81)的RGB像素。 反向拜耳过滤器步骤为: 颜色(235、168、81)的RGB像素被分为四个具有RGB值的像素:(0,0,81)-(0,168,0)/(0,168,0)-(235,0,0)。 挑战 您应该编写执行以下操作的最短函数或程序: 像输入一样获取文件名,然后输出DeBayered图像。 输出可以写入文件或显示在屏幕上。 输出必须是原始图像宽度的两倍和高度的两倍。 输入图像的每个像素必须根据BGGR(蓝-绿/绿-红)Bayer滤镜模式进行映射,如下图所示: 我们假设两个绿色光电传感器都接收到相同的信号,因此拜耳矩阵中的两个G值都等于RGB图像中的G值。 您可能不会返回结果图像的数组表示形式。输出必须是可以显示为图像的图像或文件(任何合适的图像格式)。 例 给定此文件作为输入: 生成的图像应为: 参考python实现: from PIL import Image import numpy import sys if len(sys.argv) == 1: print "Usage: python DeByer.py <<image_filename>>" sys.exit() # Open image and put it in a numpy array …

2
总结彩色图
在某些情况下,通常在物理学中,您必须对图形求和。您面临的挑战是以您选择的语言编写一个程序或函数,该程序或函数将多个图形作为图像,计算所有可能的总和,然后输出结果。 图表 这些图是包含白色(rgb(255, 255, 255))背景且每列中都有非白色像素的图像。例子: 脚本的值表示为彩色像素的Y位置。某个X坐标处的值等于该列中最上面的彩色像素的Y位置,坐标从左下角的0开始。出于美学原因,在这些像素下方可能有也可能没有其他彩色像素。 任务 您的任务是以您选择的语言编写一个程序或函数,该程序或函数将多个图形作为图像,计算所有可能的2^n - 1总和,然后输出结果。 图形总和是其中每列的值等于每个输入图形中相应列的值之和的图形。 图表将有多种颜色。结果图像必须包含所有可能的图和,以及其他图,包括原始图,但不包括零和。 每个总和的颜色由所包括的图表的颜色(例如颜色图表)的平均值确定,rgb(255, 0, 255)并且rgb(0, 255, 255)将生成的图表rgb(128, 128, 255)(也可以四舍五入)。 生成的图像应与适合所有图形的图像一样高。这意味着您可能必须输出比任何输入都大的图像。 将结果图绘制到结果图像的顺序无关紧要,即,如果结果图重叠,则可以选择哪一个在顶部,但它必须是图之一,而不是其颜色的组合。 您可以假定输入图像的宽度相等,图像的所有列至少具有一个非白色像素,并且图像(包括输出)的高度低于4096像素。 例 输入A: 输入B: 输出示例: (如果有人感兴趣,我从随机公司的股票图表中复制粘贴了这些数据。这是我发现以CSV格式获取真实数据的第一种方法。) 规则 您可以选择任何位图图像输入文件格式。 您可以选择任何位图图像输出文件格式,而不必匹配输入。 您可以使用图像处理库,但是禁止直接完成此任务的任何功能。 有标准漏洞。 这是 代码高尔夫球,因此以字节为单位的最短代码获胜。 图生成器脚本 这是一个生成图的Python 2脚本。输入以行形式给出,前三行作为RGB颜色,其余三行作为数据,以EOF终止。 import PIL.Image as image import sys if len(sys.argv) < 2: sys.stderr.write("Usage: graphgen.py <outfile> …
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.