Questions tagged «geometry»

该挑战旨在通过使用,操纵或创建形状或其他几何结构来解决。

23
ASCII艺术八边形
给定输入整数n > 1,输出边长由n字符组成的ASCII八角形。请参阅以下示例: n=2 ## # # # # ## n=3 ### # # # # # # # # # # ### n=4 #### # # # # # # # # # # # # # # # # #### n=5 ##### # # # # # # …
22 code-golf  ascii-art  code-golf  geometry  code-golf  balanced-string  code-golf  cops-and-robbers  code-challenge  cops-and-robbers  code-golf  code-golf  random  cryptography  code-golf  array-manipulation  number  code-challenge  integer  code-golf  math  integer  code-golf  math  math  parsing  image-processing  test-battery  math  number  combinatorics  fastest-code  code-golf  code-golf  math  number-theory  rational-numbers  polynomials  code-golf  math  geometry  code-golf  code-golf  number-theory  primes  factoring  code-golf  restricted-source  code-golf  string  decision-problem  counting  code-golf  math  sequence  fibonacci  code-golf  array-manipulation  counting  code-golf  array-manipulation  number-theory  code-golf  array-manipulation  code-golf  random  code-golf  string  hexadecimal  code-golf  string  code-challenge  sorting  code-golf  number  floating-point  code-golf  sorting  code-golf  decision-problem  fibonacci  code-golf  number  combinatorics  code-golf  string  code-golf  math  code-golf  electrical-engineering  code-golf  javascript  code-golf  base-conversion  code-golf  array-manipulation  matrix  binary-matrix  code-golf  kolmogorov-complexity  python  perl  ruby  code-golf  number  code-golf  optimization  integer-partitions  code-golf  string  code-golf  ascii-art 

3
我不是
注意:这个问题的标题应该是“ Loop It”,但是由于标题必须至少包含15个字符,因此会有一些不可见的空格。这样便可以搜索挑战。 挑战 给定平面中唯一积分点的有限列表,找到一个多边形,该多边形的顶点恰好是这些点的,不会自相交的。 细节 作为输入,您可以采用两个带有x和y坐标的列表或成对的列表。 输入列表至少包含3个点。 请注意,这意味着永远不会有唯一的解决方案。 可以假定输入列表不是共线的(点不能包含在一行中),这意味着实际上存在这样一个非自相交的多边形。 每个顶点的角度是任意的,包括180°。 对于长度的输入n,输出应该是一个排列(p1,p2,p3,...,pn)的(1,2,3,...,n),其中的k第条目pk表示p在输入列表个点。这意味着我们有一条线从p1to p2,一条线从p2to p3等等,以及一条线从pnto p1。(您也可以使用从0开始的索引。)或者,您可以按照正确的顺序输出输入点的列表。 例子 假设我们有要点[(0,0),(0,1),(1,0),(-1,0),(0,-1)],我们想代表以下路径: 这意味着我们将输出列表 [5,1,4,2,3] 这里有更多建议可以尝试(我建议查看相应的地块以验证目标。) Triangle [(0,0),(0,1),(1,0)] S-Curve [(0,0),(0,1),(0,2),(0,3),(0,4),(1,0),(2,0),(2,1),(2,2),(2,3),(2,4),(3,4),(4,0),(4,1),(4,2),(4,3),(4,4)] L-Shape [(4,0),(1,0),(3,0),(0,0),(2,0),(0,1)] Menger Sponge [(1,1),(2,1),(3,1),(4,1),(5,1),(6,1),(7,1),(8,1),(9,1),(10,1),(11,1),(12,1),(13,1),(14,1),(15,1),(16,1),(17,1),(18,1),(19,1),(20,1),(21,1),(22,1),(23,1),(24,1),(25,1),(26,1),(27,1),(1,2),(3,2),(4,2),(6,2),(7,2),(9,2),(10,2),(12,2),(13,2),(15,2),(16,2),(18,2),(19,2),(21,2),(22,2),(24,2),(25,2),(27,2),(1,3),(2,3),(3,3),(4,3),(5,3),(6,3),(7,3),(8,3),(9,3),(10,3),(11,3),(12,3),(13,3),(14,3),(15,3),(16,3),(17,3),(18,3),(19,3),(20,3),(21,3),(22,3),(23,3),(24,3),(25,3),(26,3),(27,3),(1,4),(2,4),(3,4),(7,4),(8,4),(9,4),(10,4),(11,4),(12,4),(16,4),(17,4),(18,4),(19,4),(20,4),(21,4),(25,4),(26,4),(27,4),(1,5),(3,5),(7,5),(9,5),(10,5),(12,5),(16,5),(18,5),(19,5),(21,5),(25,5),(27,5),(1,6),(2,6),(3,6),(7,6),(8,6),(9,6),(10,6),(11,6),(12,6),(16,6),(17,6),(18,6),(19,6),(20,6),(21,6),(25,6),(26,6),(27,6),(1,7),(2,7),(3,7),(4,7),(5,7),(6,7),(7,7),(8,7),(9,7),(10,7),(11,7),(12,7),(13,7),(14,7),(15,7),(16,7),(17,7),(18,7),(19,7),(20,7),(21,7),(22,7),(23,7),(24,7),(25,7),(26,7),(27,7),(1,8),(3,8),(4,8),(6,8),(7,8),(9,8),(10,8),(12,8),(13,8),(15,8),(16,8),(18,8),(19,8),(21,8),(22,8),(24,8),(25,8),(27,8),(1,9),(2,9),(3,9),(4,9),(5,9),(6,9),(7,9),(8,9),(9,9),(10,9),(11,9),(12,9),(13,9),(14,9),(15,9),(16,9),(17,9),(18,9),(19,9),(20,9),(21,9),(22,9),(23,9),(24,9),(25,9),(26,9),(27,9),(1,10),(2,10),(3,10),(4,10),(5,10),(6,10),(7,10),(8,10),(9,10),(19,10),(20,10),(21,10),(22,10),(23,10),(24,10),(25,10),(26,10),(27,10),(1,11),(3,11),(4,11),(6,11),(7,11),(9,11),(19,11),(21,11),(22,11),(24,11),(25,11),(27,11),(1,12),(2,12),(3,12),(4,12),(5,12),(6,12),(7,12),(8,12),(9,12),(19,12),(20,12),(21,12),(22,12),(23,12),(24,12),(25,12),(26,12),(27,12),(1,13),(2,13),(3,13),(7,13),(8,13),(9,13),(19,13),(20,13),(21,13),(25,13),(26,13),(27,13),(1,14),(3,14),(7,14),(9,14),(19,14),(21,14),(25,14),(27,14),(1,15),(2,15),(3,15),(7,15),(8,15),(9,15),(19,15),(20,15),(21,15),(25,15),(26,15),(27,15),(1,16),(2,16),(3,16),(4,16),(5,16),(6,16),(7,16),(8,16),(9,16),(19,16),(20,16),(21,16),(22,16),(23,16),(24,16),(25,16),(26,16),(27,16),(1,17),(3,17),(4,17),(6,17),(7,17),(9,17),(19,17),(21,17),(22,17),(24,17),(25,17),(27,17),(1,18),(2,18),(3,18),(4,18),(5,18),(6,18),(7,18),(8,18),(9,18),(19,18),(20,18),(21,18),(22,18),(23,18),(24,18),(25,18),(26,18),(27,18),(1,19),(2,19),(3,19),(4,19),(5,19),(6,19),(7,19),(8,19),(9,19),(10,19),(11,19),(12,19),(13,19),(14,19),(15,19),(16,19),(17,19),(18,19),(19,19),(20,19),(21,19),(22,19),(23,19),(24,19),(25,19),(26,19),(27,19),(1,20),(3,20),(4,20),(6,20),(7,20),(9,20),(10,20),(12,20),(13,20),(15,20),(16,20),(18,20),(19,20),(21,20),(22,20),(24,20),(25,20),(27,20),(1,21),(2,21),(3,21),(4,21),(5,21),(6,21),(7,21),(8,21),(9,21),(10,21),(11,21),(12,21),(13,21),(14,21),(15,21),(16,21),(17,21),(18,21),(19,21),(20,21),(21,21),(22,21),(23,21),(24,21),(25,21),(26,21),(27,21),(1,22),(2,22),(3,22),(7,22),(8,22),(9,22),(10,22),(11,22),(12,22),(16,22),(17,22),(18,22),(19,22),(20,22),(21,22),(25,22),(26,22),(27,22),(1,23),(3,23),(7,23),(9,23),(10,23),(12,23),(16,23),(18,23),(19,23),(21,23),(25,23),(27,23),(1,24),(2,24),(3,24),(7,24),(8,24),(9,24),(10,24),(11,24),(12,24),(16,24),(17,24),(18,24),(19,24),(20,24),(21,24),(25,24),(26,24),(27,24),(1,25),(2,25),(3,25),(4,25),(5,25),(6,25),(7,25),(8,25),(9,25),(10,25),(11,25),(12,25),(13,25),(14,25),(15,25),(16,25),(17,25),(18,25),(19,25),(20,25),(21,25),(22,25),(23,25),(24,25),(25,25),(26,25),(27,25),(1,26),(3,26),(4,26),(6,26),(7,26),(9,26),(10,26),(12,26),(13,26),(15,26),(16,26),(18,26),(19,26),(21,26),(22,26),(24,26),(25,26),(27,26),(1,27),(2,27),(3,27),(4,27),(5,27),(6,27),(7,27),(8,27),(9,27),(10,27),(11,27),(12,27),(13,27),(14,27),(15,27),(16,27),(17,27),(18,27),(19,27),(20,27),(21,27),(22,27),(23,27),(24,27),(25,27),(26,27),(27,27)]

30
获取一个具有不同数字的随机n位数字,第一个不是0
我读了这个问题,并认为这将是一个不错的挑战。 任务 给一个输入0<n<10生成一个随机数 正好n位数字 第一个不是 0 所以 f(n)>10**(n-1)-1 不同的数字 获奖标准 这是代码高尔夫球,因此最短的代码获胜。 随机 我的意思是随机分布均匀。因此,从程序的角度来看,每个可能的数字都有相同的机会。如果您使用的语言具有一个奇怪的随机数生成器,则可以使用该生成器。 例 要从中随机选择的值的列表n=2是: [10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, …
22 code-golf  number  random  grid  game  king-of-the-hill  javascript  code-golf  arithmetic  statistics  code-golf  math  code-golf  math  code-golf  string  palindrome  code-golf  string  interactive  code-golf  quine  polyglot  code-golf  string  stack-exchange-api  code-golf  number-theory  decision-problem  code-golf  tips  code-golf  string  internet  code-golf  graphical-output  image-processing  fractal  code-golf  ascii-art  geometry  hexagonal-grid  code-golf  string  restricted-source  hello-world  code-golf  game  code-golf  cipher  code-golf  permutations  cops-and-robbers  permutations  cops-and-robbers  code-golf  internet  stack-exchange-api  code-golf  ascii-art  random  code-golf  tips  code-golf  ascii-art  code-golf  code-golf  kolmogorov-complexity  code-golf  string  unicode  code-golf  number  sequence  primes  palindrome  code-golf  game  decision-problem  code-golf  math  geometry  code-golf  graphical-output  interactive  code-golf  set-partitions  code-golf  number  arithmetic  restricted-source  code-golf  decision-problem  python  recursion  code-golf  ascii-art  code-golf  source-layout  code-golf  function  recursion  functional-programming  code-golf  game  combinatorics  permutations  code-golf  string  file-system  code-golf  string  hashing  code-golf  stack-exchange-api  code-golf  string  code-golf  math  number  arithmetic  polyglot 

10
两种颜色的重叠圆
编写一个程序或函数,以您选择的合理格式接收以下输入: 两个正整数W和H定义要生成的图像的宽度和高度。 两种RGB颜色C1和C2将用于为图像着色。 形式的三元组列表,(r, x, y)用于定义在图像平面中具有半径r和中心的圆x, y。r是一个正整数,x并且y是任何整数。图像的左上像素为0, 0,x轴向右增加,y轴向下增加。 输出尺寸为W x H的图像,并用C1和C2着色,以使所有重叠圆所定义的两个相邻区域都不是同一颜色。 例如:如果输入是 W = 300 H = 200 C1 = (255, 200, 0) C2 = (128, 0, 255) Circles = (25, 50, 80), (40, 80, 120), (300, -100, 6), (17, 253, 162) 那么圆边界看起来像这样: 圆圈创建的图像中有六个不同的连续区域。每个区域必须用C1(黄色)或C2(紫色)上色,以使没有两个相邻的区域具有相同的颜色。 有两种方法可以做到这一点,它们唯一的区别是可以交换颜色: 因此,对于示例输入,这两个图像中的任何一个都是有效输出。 喜欢的东西这是因为两个黄地区彼此相邻无效的输出。 您的输出图像应遵循以下准则: 除了C1和C2,第三种中性色(例如黑色或白色)也可以用于圆形边界,只要它们的厚度不超过5像素即可。(上面的示例中存在黑色的1像素厚边界。) 但是,圆边界不是必需的。这些区域可以彼此直接相邻: …

1
解决网格图
该七巧板是由七个形状制成的夹层拼图:五种不同大小的三角形,平行四边形和正方形。给定形状,目标是使用所有零件且不重叠来重新创建形状。显然,有无数种方法可以将这组零件排列在平面上。一个有趣的子集是 网格七巧板 我们可以得出“标准”七巧板方成由细分更大的方形网格成16个个小方格。网格七巧板只是由七巧板块组成的形状,因此,这些块的所有顶点都在网格点上。 这些是我们在此挑战中要考虑的七巧板难题,因为它们可能比更一般的难题更容易处理。 附带说明:1942年,中国数学家熊传雄和王付特拉证明了只有13个凸七巧板。他们首先表明,可以将问题简化为网格七巧板,然后使用一些组合和几何参数。这些都是这13个: 挑战 给定可解决的网格七巧板,将网格七巧板的解剖输出为七个七巧板。 IO 七巧板以黑白图像形式给出(形状为黑色,背景为白色),两边的倍数均为50px。网格的宽度正好为50px。网格线平行于图像的侧面。 编辑:图像可以接受为输入,并以任何方便的光栅图像格式(如PNG,TIFF,PBM等)作为输出返回,但是可以将其表示为二进制2d数组或字符串或矩阵。 输出应再次具有相同的大小,并应再次具有相同的形状,但每个部件具有不同的颜色,或者用白线分隔所有部件。值得注意的是,非矩形四边形可以翻转。 块边界上的像素不必完全与形状上的像素匹配,如果存在锯齿效果或其他模糊现象,也可以。 输入和输出示例: 例子: 可能的解决方案:

10
这个正方形对称吗?
写一个程序或函数,它在一个4×4栅格的文本组成的正好是4 A的,4 B'S,4 C's和4 D的,如: ACDC BBCA BADD ABCD 所述ABCD的可以是任何布置,但总是会有各自的4。您可以假定输入有效。如果需要,您还可以假定它具有尾随换行符和/或它按阅读顺序排成一行,例如ACDCBBCABADDABCD。如果需要,您也可以分别ABCD用0123或替换字符1234(仅此而已)。 如果文本网格具有任何形式的反射对称或旋转对称,则输出真实值。特别: 如果有一条中心水平对称线。例如 BACD BACD BACD \___ bottom mirrors top BACD / 如果有一条中心垂直对称线。例如 BCCB DAAD CAAC BDDB \/___ right mirrors left 如果有对角线对称线(在任一方向上)。例如 ___ diagonally mirrored / ABDC BACD DCAB CDBA \___ diagonally mirrored 如果存在90°旋转对称性。例如 BDAB ACCD same if rotated 90 degrees …

30
n维空间中两点之间的距离
这是另一个简单的例子: 挑战 给定n维空间中的两个点,输出它们之间的距离,也称为欧几里得距离。 坐标将是有理数;唯一的限制就是您的语言限制。 最小尺寸为1,最大尺寸取决于您的语言 您可以假设两个点的尺寸相同,并且没有空输入。 距离必须正确至少为小数点后3位。如果您的语言不支持浮点数,请输出最接近的整数。 规则 与往常一样,允许使用功能或完整程序。 输入可以从STDIN,命令行或函数参数中获取。 输入格式取决于您,指定您在答案中使用的格式。 可以通过打印到标准输出或返回值来提供输出。 这是代码高尔夫球,因此最低字节数获胜!如果是平局,则较早的答案为准。 测试用例 每个点由长度为n的列表表示。 [1], [3] -> 2 [1,1], [1,1] -> 0 [1,2], [3,4] -> 2.82842712475 [1,2,3,4], [5,6,7,8] -> 8 [1.5,2,-5], [-3.45,-13,145] -> 150.829382085 [13.37,2,6,-7], [1.2,3.4,-5.6,7.89] -> 22.5020221314 编码愉快!

10
用这个修改后的圆平铺平面
取一个以原点为中心的单位圆。在任何两个相邻的象限中,将圆的曲线跨连接圆的x和y截距的线镜像。 使用生成的形状,可以平铺平面: 我用了不起的2D物理沙箱Algodoo制作了这张图片! 编写一个程序,以某种常见的无损图像文件格式输出与此图像相似的图像。您可以将图像另存为具有您选择的名称的文件,也可以只显示它。请勿输入任何内容。 规则: 必须使用任何两种视觉上不同的RGB颜色将整个图像与修改后的圆形图块进行镶嵌处理:一种用于垂直指向的图块,一种用于水平指向的图块。 圆形图块的半径至少应为32个像素。(上图中的半径大约为110像素。) 图像至少应宽4格,高4格。结合上面的规则,这意味着图像可以具有256×256像素的最小尺寸。(上图是4块x 4块。) 镶嵌可以任意转换。例如,图像的左上角不必是图块相交的顶点。(但是,不应旋转镶嵌。) 您可以使用具有用于绘制圆形和输出图像等命令的外部图形库。 曲线确实应该近似圆,就像使用中点圆算法可以做到的那样,大多数图形库都可以为您做到。 允许但不要求在图块边缘周围进行抗锯齿。 以字节为单位的最短提交获胜。

7
用矩形覆盖区域
输入项 您在此挑战中输入的是整数对列表。它们表示平面上单位正方形的西南角,列表表示它们作为平面的子集的并集。例如清单 [(0,0),(1,0),(0,1),(1,1),(2,1),(1,2),(2,2)] 代表此图片中的红色集: 输出量 您的输出是一个整数四倍列表,代表平面的矩形子集。更明确地说,四元组(x,y,w,h)代表一个矩形,该矩形的宽度w > 0和高度为h > 0西南角在(x,y)。在每个单位正方形是某个矩形的子集,每个矩形是该区域的子集的意义上,矩形必须形成输入区域的精确覆盖,并且两个矩形只能在其边界处重叠。为了避免琐碎的解决方案,封面不得包含两个可以合并成更大矩形的矩形。 例如清单 [(0,0,2,1),(0,1,3,1),(1,2,2,1)] 代表法律保障 以上区域,而由 [(0,0,2,2),(2,1,1,1),(1,2,1,1),(2,2,1,1)] 是非法的,因为相邻的1乘1正方形可以合并: 规则 您可以提供完整的程序或功能。在合理范围内,输入和输出的精确格式并不重要。最短的字节数获胜,并且不允许出现标准漏洞。我们鼓励您对算法进行解释,并提供一些示例输出。 测试用例 U形区域: [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(2,0),(2,1),(3,0),(3,1),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5)] 大三角形: [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(0,9),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(2,0),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(3,0),(3,1),(3,2),(3,3),(3,4),(3,5),(3,6),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(5,0),(5,1),(5,2),(5,3),(5,4),(6,0),(6,1),(6,2),(6,3),(7,0),(7,1),(7,2),(8,0),(8,1),(9,0)] 带孔的正方形: [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(1,9),(2,0),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(2,8),(2,9),(3,0),(3,1),(3,2),(3,4),(3,5),(3,6),(3,7),(3,8),(3,9),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(4,6),(4,7),(4,8),(4,9),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5),(5,7),(5,8),(5,9),(6,1),(6,2),(6,3),(6,5),(6,6),(6,7),(6,8),(6,9),(7,0),(7,1),(7,2),(7,3),(7,4),(7,5),(7,6),(7,7),(7,8),(7,9),(8,0),(8,1),(8,2),(8,3),(8,4),(8,5),(8,6),(8,7),(8,8),(8,9),(9,0),(9,1),(9,2),(9,3),(9,4),(9,5),(9,6),(9,7),(9,8),(9,9)] 断开区域: [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(1,0),(1,1),(1,2),(1,3),(1,4),(1,6),(1,7),(1,8),(1,9),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(2,8),(2,9),(4,0),(4,1),(4,2),(4,4),(4,5),(4,6),(4,7),(4,8),(4,9),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5),(5,6),(5,7),(5,8),(5,9),(6,0),(6,1),(6,2),(6,4),(6,5),(6,6),(6,7),(6,8),(6,9),(8,0),(8,1),(8,2),(8,3),(8,4),(8,5),(8,6),(8,7),(8,8),(8,9),(9,0),(9,1),(9,2),(9,3),(9,7),(9,8),(9,9),(10,0),(10,1),(10,2),(10,3),(10,4),(10,5),(10,6),(10,7),(10,8),(10,9)] 验证者 使用此 Python 2程序来验证您的解决方案。它从STDIN中获取元组列表(输入)和四元组列表(您的输出),并用逗号分隔。 我还编写了此 Python 2程序来生成图片,您也可以使用它。它从STDIN中获取元组或四元组的列表,并生成一个名为的文件out.png。它需要PIL库。如果需要,您也可以更改网格单元的大小和网格线的宽度。

3
绘制Epicyclogons
一个外摆线是曲线上的圆上的点使得滚卷围绕另一个圆。甲cyclogon是形状上的一个点正多边形使得因为它跨过平面滚动。一个外延多边形是一条曲线在一个正多边形上围绕另一个点滚动时所跟踪的曲线。 编写绘制给予epicyclogon程序r,r1,r2,n1,n2: r = number of clockwise revolutions rolling polygon makes around stationary polygon (any real number as limited by float values) r1 = distance from center of stationary polygon to each of its vertices (positive real number) r2 = distance from center of rolling polygon to each of its …

5
计算对角网格中的矩形
作为此挑战的后续措施,我们现在要计算具有r行和c列的网格中矩形的数量,其中有一条线穿过网格中正方形的每个对角线。现在,我们仍在计算与以前相同的矩形,但是这次我们还必须包括倾斜45度的矩形。 您的目标是创建一个给定行数r和列c输出尺寸为(r,c)的对角网格中的矩形数的函数或程序。 作为演示,这是一个动画,它迭代了由(2 x 3)对角网格形成的所有37个矩形。 测试用例 Each case is [rows, columns] = # of rectangles [0, 0] = 0 [0, 1] = 0 [1, 0] = 0 [1, 1] = 1 [3, 2] = 37 [2, 3] = 37 [6, 8] = 2183 [7, 11] = 5257 [18, 12] = …

2
重叠圆的边界
给定一个平面上几个点的坐标,以及围绕每个点的圆的半径,绘制代表圆和圆相交的边的多边形。直边将始终沿圆-圆相交线落下,但可能不会遵循这些线的全长。 根据mbomb007的建议,想象一下2D肥皂泡的行为。这在技术上是错误的,因为肥皂泡总是会以120°的角度相遇以最大程度地减少能量,而这些圆圈可能会以任何角度相遇。 这是一个Voronoi图,减去定义的平面。谢谢Andreas。这实际上是称为功率图的Voronoi图的一般化。 例子 例如,给定两个点和两个半径,输出可能如下所示: 添加另一个点和半径,输出可能如下所示: 输入项 您可以根据需要构造输入。请通过以下输入发布结果。 测试1 x:10,y:10,r:10 x:25,y:12,r:8 测试2 x:8,y:10,r:6 x:20,y:8,r:4 x:18,y:20,r:12 输出量 输出应为图形,并应包含多边形边界,但不需要其他任何内容。点和交点不需要像示例中那样表示。 约束条件 另一个圆的半径内将不存在任何点。 标准的代码高尔夫规则。 没有漏洞的答案将不被接受,但请随时尝试。

9
矩形检测
编写一个包含0“ s”和1“ s ”的多行字符串的程序或函数。字符串中不会再有其他字符,并且字符串始终将是矩形的(所有行将具有相同数量的字符),尺寸小至1×1,但否则可以任意排列0'和1'。 您可以假设该字符串具有可选的尾随换行符,并且如果需要,可以使用任意两个不同的可打印ASCII字符代替0和1。 打印或返回truthy值,如果所有的的路径连接的区域都0的和1的中的字符串是实心矩形,否则输出falsy值。 甲路径连接区域的0“是,从任何一个S是指0在该区域中,所有其它0的可以通过仅向上移动达到,下,左,右等0的(和不倾斜地移动,不移动到任何1和不会超出字符串范围)。同样的想法适用于1路径连接区域。 甲实心矩形的0的手段的矩形的整个区域被填充0的和没有1的。同样的想法适用于1实心矩形。 以字节为单位的最短代码获胜。抢七是较早的答案。 (请注意,字符串不会与环形边界条件一起环绕。) 例子 1)此输入字符串具有3个路径连接的区域(2个用于0,1个用于1)。但是,只有右下角的00区域是一个实心矩形,因此输出将是虚假的。 0011 0111 0100 2)该输入字符串具有4个路径连接的区域(2两者0和1)。它们都是实心矩形,因此输出将是真实的。 0011 0011 1100 3)此输入具有2条路径连接的区域,但其中只有一个是实心矩形,因此输出将是虚假的。 00000000 01111110 00000000 4)此输入只有1条路径连接的区域,并且是一个实心矩形,因此输出是真实的。 11111111 11111111 11111111 测试用例 T输入字符串下方的A 表示真实,F表示虚假。 0 T 1 T 00 T 01 T 10 T 11 T 0000000 T 1111111 T 011100100100101100110100100100101010100011100101 T 00 11 …

8
圆形蓝调
编写一个程序或函数,该程序或函数接受一个正整数N并重新创建按比例缩放以适合N×N像素图像的这种圆形图案: 该图像是N = 946的有效输出示例。 如果不清楚,则所有小的浅蓝色圆圈都具有相同的半径,并且以相同的方式位于四个深蓝色圆圈中。深蓝色圆圈的半径是该半径的两倍,并且类似地位于较大的浅蓝色圆圈中。 可以使用任何两种视觉上不同的颜色来代替两种蓝色。 背景方块确实需要着色。 抗锯齿是可选的。 将图像保存到文件,显示它或将原始图像数据通过管道传输到stdout。 允许使用任何常见的图像文件格式。 以字节为单位的最短代码获胜。 如果您将该圆形图案的递归方面扩展到其他级别,则布朗尼指向。(请与您的挑战条目保持区别。)

3
二维碰撞检测
这个挑战基于我最近不得不为一个简单的游戏编写的实际碰撞检测。 编写一个程序或函数,给定两个对象,该程序或函数将根据两个对象是否发生碰撞(即相交)来返回真实值或虚假值。 您需要支持三种类型的对象: 线段:由4个浮点数表示,指示两个端点,即(x 1,y 1)和(x 2,y 2)。您可以假定端点不相同(因此线段不会退化)。 圆盘:即实心圆,以3个浮点表示,两个为中心(x,y),一个为(正)半径r。 腔:这些是光盘的补充。也就是说,除了由中心和半径指定的圆形区域之外,空腔会填充所有2D空间。 您的程序或函数将以标识整数(您选择的形式)及其3或4个浮点的形式接收两个此类对象。您可以通过STDIN,ARGV或函数参数接受输入。您可以使用任何未经预处理的方便形式来表示输入,例如8到10个单独的数字,两个以逗号分隔的值列表或两个列表。结果可以返回或写入STDOUT。 您可以假设对象至少为10相隔 -10个长度单位或相交那么多,因此您不必担心浮点类型的局限性。 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 测试用例 使用基于列表的输入格式,用表示线段,用表示0圆盘,用表示1空洞2,以下内容均应产生真实的输出: [0,[0,0],[2,2]], [0,[1,0],[2,4]] # Crossing line segments [0,[0.5,0],[-0.5,0]], [1,[0,0],1] # Line contained in a disc [0,[0.5,0],[1.5,0]], [1,[0,0],1] # Line partially within disc [0,[-1.5,0.5],[1.5,0.5]], [1,[0,0],1] # Line cutting through disc [0,[0.5,2],[-0.5,2]], [2,[0,0],1] # Line outside cavity …

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.