Questions tagged «3d»

对于涉及三维图形,三维几何或三维空间数据结构(例如八叉树)的挑战。

28
计算Phi(非Pi)
不,我不是说ϕ = 1.618...和π = 3.14159...。我的意思是功能。 φ(x)的是一个整数小于或等于的数量x互质到x。 π(x)是小于或等于的素数x。 假设“非pi”为π̅(x),并将其定义为小于或等于的复合数x。 任务 给定一个严格的正整数x,计算φ(π̅(x))。得分以字节为单位。 例子 每行包括输入(从1到100,包括1和100),以及由空格分隔的相应输出。 1 0 2 0 3 0 4 1 5 1 6 1 7 1 8 2 9 2 10 4 11 4 12 2 13 2 14 6 15 4 16 6 17 6 18 4 19 4 …
73 code-golf  sequence  primes  number-theory  code-golf  decision-problem  code-golf  date  code-golf  typography  code-golf  math  number  multiple-holes  code-golf  quine  code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

22
自然派#0-摇滚
目标 创建一个接受输入的程序/函数N,检查N随机整数对是否相对质数,然后返回sqrt(6 * N / #coprime)。 TL; DR 这些挑战是仅需要自然和大脑(也许还有一些可重复使用的资源)才能逼近Pi的算法模拟。如果您在僵尸启示录期间确实需要Pi,那么这些方法不会浪费弹药!还有另外八个挑战。检出沙盒帖子以提出建议。 模拟 我们在模拟什么?好吧,两个随机整数是相对质数(即coprime或gcd == 1)的概率是6/Pi/Pi,因此计算Pi的自然方法是挖出两个桶(或少数几个)的岩石。数他们;看看他们的gcd是否为1;重复。这样做后,一对夫妇很多次,sqrt(6.0 * total / num_coprimes)会趋向Pi。如果计算世界末日后的平方根使您感到紧张,请不要担心!有牛顿法。 我们如何模拟这一点? 接受输入 N 请执行以下N次数: 均匀生成随机正整数,i并且j 用 1 <= i , j <= 10^6 如果gcd(i , j) == 1:result = 1 其他: result = 0 取N结果的总和,S 返回 sqrt(6 * N / S) 规格 输入值 …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

30
2的幂和
挑战 给定一个整数输入x其中1 <= x <= 255,返回时总结给出了两种力量的结果x。 例子 给定输入: 86 您的程序应输出: 64 16 4 2 输入: 240 输出: 128 64 32 16 输入: 1 输出: 1 输入: 64 输出: 64 如果总和中没有确定的2的幂,则输出可能包含零。 例如,输入65可以输出0 64 0 0 0 0 0 1。 计分 这是代码高尔夫球,因此每种语言中最短的答案将获胜。
31 code-golf  binary  code-golf  sequence  integer  chess  code-golf  number  arithmetic  matrix  code-golf  code-golf  combinatorics  grid  set-partitions  code-golf  array-manipulation  graph-theory  code-golf  number  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  3d  code-challenge  restricted-source  printable-ascii  code-golf  board-game  code-golf  geometry  grid  code-golf  word-puzzle  code-golf  matrix  sorting  code-golf  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  code-golf  decision-problem  code-golf  math  number  arithmetic  restricted-source  code-golf  code-golf  number  integer  matrix  code-golf  date  code-golf  matrix  code-golf  sequence  combinatorics  chemistry  code-golf  array-manipulation  popularity-contest  code-golf  code-golf  natural-language  code-golf  number  integer  sorting  substitution  code-golf  string  number  date  encode  code-golf  decision-problem  code-golf  string  subsequence  code-golf  string  alphabet  code-golf 

10
3D:离散混战决斗(现已对非Java提交开放)
更新: isSuicidal()已添加到平面类中,这使您可以检查平面是否与墙处于不可逆的碰撞过程中!! 更新: updateCoolDown()与simulateMove()分离 更新:Sparr编写的非Java条目包装器,可以进行测试,请参阅注释 Zove Games 更新为此KOTH编写了一个很棒的3D可视化程序,这是一个与PredictAndAVoid对抗PredictAndAVoid 的肮脏的youtube视频。 我们对Plane类的simulateMove()函数进行了少许修改,以使其不再更新冷却时间,请在拍摄后使用新的updateCoolDown()函数。如果飞机注定要死机,则新的isSuicidal()将返回true,使用它来修剪敌人的移动并避免撞到墙壁。要获取更新的代码,只需将Controller和Plane类替换为github存储库中的类即可。 描述 这项挑战的目标是编写两个将与另一位参赛者对抗的两架格斗飞机的代码。每转一圈,您就可以移动一个空间并有机会射击。就这样,就这么简单。 好吧,差不多... 竞技场和可能的举动 竞技场是14x14x14的空间围墙。参赛者1的平面从(0,5,0)和(0,8,0)开始,而参赛者2的平面从(13,5,13)和(13,8,13)开始。所有飞机都是从与其最接近的垂直壁水平飞行而开始的。 现在,由于您是在飞行飞机,而不是直升机,因此您不能随便改变方向甚至停止移动,因此每架飞机都有一个方向,并且每转一圈都会向该方向移动一个图块。 可能的方向是:北(N),南(S),东(E),西(W),上(U)和下(D)以及这六个的任何逻辑组合。NS轴对应于x轴,WE对应y,DU对应z。NW,SU和NED是可能的方向示例;UD是无效组合的一个很好的例子。 您当然可以更改飞机的方向,但是有一个限制,您最多只能更改45度的方向。为了可视化,请抓住您的魔方(我知道您有一个),并想象所有26个外部小立方体都是可能的方向(一个字母方向是面,两个字母方向是边,三个字母方向是角)。如果您正朝着由一个小立方体表示的方向前进,则可以将方向更改为与您的立方体接触的每个立方体(对角线触摸计数,但仅可见地触摸,即不触摸该立方体)。 在所有平面指示了它们想要改变的方向之后,他们这样做并同时移动一个图块。 您也可以选择沿有效方向移动,但继续沿原方向飞行,而不是将方向更改为所移动的方向。这类似于拐角处的汽车和变道的汽车之间的区别。 射击和死亡 您每回合最多可以射击一次,这必须在决定飞行方向时同时决定,以及是否要将飞机(以及延伸的枪支)指向同一方向。飞机移动后,子弹立即被射中。射击后有一个回合的冷静,在第三回合,您可以再去一次。您只能朝飞行的方向射击。子弹是即时的,并且会一直直线飞行,直到撞到墙壁或飞机上为止。 考虑到可以改变方向以及“改变车道”的方式,这意味着除了一些对角线,单条线之外,您还可以威胁到前方最多3x3线的列。 如果撞到飞机,该飞机会死亡并立即从板上消失(因为它会完全爆炸或其他原因)。子弹最多只能击中一架飞机。子弹同时射击,因此两架飞机可以互相射击。但是,有两枚子弹不能在空中相撞(我知道这很悲伤)。 但是,两个平面可能会发生碰撞(如果它们最终在同一个立方体中,并且如果彼此交叉而没有最终在同一平面中就不会碰撞),这会导致两个平面都垂死(并完全爆炸)。您也可以飞入墙壁,这将使有问题的飞机垂死并被拐弯处以考虑其作用。在拍摄前要先处理好碰撞。 与控制器通讯 我将接受Java以及其他语言的条目。如果您的输入使用Java,则将通过STDIN获取输入,并通过STDOUT输出。 如果您的条目使用Java,则.your条目必须扩展以下类: package Planes; //This is the base class players extend. //It contains the arena size and 4 plane objects representing the planes in …

5
检查三个字母是否可以构成“ Godel-Escher-Bach立方体”
这个问题的灵感来自《 Godel,Escher,Bach》一书的封面: 这里的挑战是编写一个函数,该函数告诉三个给定的字母是否可以产生可以从三个侧面读取的3D雕塑。 在本练习中,您只能使用26个5px * 5px位图的字母: 或以二进制(A到Z)格式: 01110 11110 01111 11110 11111 11111 11111 10001 11111 11111 10001 10000 10001 10001 01110 11110 01110 11110 01111 11111 10001 10001 10001 10001 10001 11111 10001 10001 10000 10001 10000 10000 10000 10001 00100 00100 10010 10000 11011 11001 10001 10001 10001 …
29 code-golf  3d 

1
马里奥会落入萎缩卫星吗?(添加图)
超级马里奥银河(Super Mario Galaxy)拥有两个菱形八面体形状的*行星,它们的平台平铺,随着马里奥(Mario)的掠过而缩小。如果Mario掉入一个三角形的孔或先前触摸过的瓷砖留下的缝隙,他将被核心处的黑洞吞噬。(观看: Hurry-Scurry星系, Sea Slide星系) 图片:MarioWiki.com (您可以将行星视为一个2x2x2立方体,其面已通过2x3“桥”分离并彼此连接。) 不幸的是,由于我的控制器非常损坏,因此Mario无法跳跃,并且只能在四个基本方向上操作。此外,马里奥动作非常缓慢,即使不先离开身后的平台也无法退一步。 假设相机始终在马里奥的头顶上方,并且从2x2脸部的右下角开始: ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ M ■ ■ ■ ■ ■ ■ ■ ■ ■ 您的程序将采用一个列表或方向字符串U D L R(上,下,左,右),以一系列步骤代表Mario在地球上的行走。该程序可以输出两个截然不同的输出之一:一个代表马里奥还活着并在行走,另一个代表马里奥在行走中的某个地方掉入了收缩卫星。 RR: ■ ■ RRD: ■ ■ RRL: ■ …

8
包装季节性礼物
任务 给定一个包装器元素和一个非锯齿状的3D数组,将数组顶部,底部和四周包裹起来。您必须同时处理字符数据和数字数据,但是包装器和当前数据将具有相同的数据类型。 角色示例 对于字符数据,您可以选择处理单个字符的3D数组或字符串的2D数组: 给定2层2行4列字符数组 [[["Y","o","u","r"], ["g","i","f","t"]], [["g","o","e","s"], ["h","e","r","e"]]] 和字符".",回答4层,4行,6列字符数组 [[[".",".",".",".",".","."], [".",".",".",".",".","."], [".",".",".",".",".","."], [".",".",".",".",".","."]], [[".",".",".",".",".","."], [".","Y","o","u","r","."], [".","g","i","f","t","."], [".",".",".",".",".","."]], [[".",".",".",".",".","."], [".","g","o","e","s","."], [".","h","e","r","e","."], [".",".",".",".",".","."]], [[".",".",".",".",".","."], [".",".",".",".",".","."], [".",".",".",".",".","."], [".",".",".",".",".","."]]] 或给出2行2列的4个字符的字符串数组 [["Your", "gift"], ["goes", "here"]] 和字符".",回答4行4列的6个字符的字符串数组 [["......", "......", "......", "......"], ["......", ".Your.", ".gift.", "......"], ["......", ".goes.", ".here.", "......"], ["......", "......", "......", "......"]] 数值示例 给定2层2行2列数字数组 …

13
谢尔宾斯基层
首先,/\您可以通过在下面添加一条线来创建类似于Sierpinski三角形的图案,从而... 任何松散的分支/或\再次分裂为两个分支:/\。 分支的任何碰撞都将\/死,其下无任何东西(只有空格)。 重复这些规则将产生 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ etc... (ViHart的启发) 编写一个程序或函数,该程序或函数接受一个正整数N,并将此模式的前N行打印到stdout,且前导或尾随空格不超过所需数量。 例如,如果输入是1输出,则必须为 /\ 如果输入是2输出,则必须为 /\ /\/\ 如果输入是8输出,则必须为 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ /\ /\ /\ /\ /\/\/\/\/\/\/\/\ 等等。 字节最少的代码获胜。

20
分解一个数字!
您的任务是使用以下格式分解数字。 这与基本转换类似,不同之处在于digits,您列出了values,而不是在基本列表中列出,这样列表就加到了输入上。 如果给定的基为n,则列表中的每个数字都必须采用的形式k*(n**m),其中0<=k<n和m在整个列表中都是唯一的。 眼镜 任何合理的输入/输出格式。您的程序/功能需要2个输入并输出一个列表。 输出列表可以是任何顺序。 0 可以排除或包含。 0允许领导。 允许内置。 测试用例 number base converted list input1 input2 output 123456 10 [100000,20000,3000,400,50,6] or [6,50,400,3000,20000,100000] 11 2 [8,2,1] or [0,0,0,0,8,0,2,1] 727 20 [400,320,7] 101 10 [100,1] or [100,0,1] 计分 这是代码高尔夫球。以字节为单位的最短解决方案获胜。
16 code-golf  number  sequence  number-theory  base-conversion  code-golf  bitwise  hashing  code-golf  string  ascii-art  whitespace  code-golf  math  code-golf  code-golf  image-processing  counting  code-golf  math  arithmetic  checksum  code-golf  code-golf  math  arithmetic  number-theory  code-golf  array-manipulation  random  code-golf  string  code-golf  math  ascii-art  base-conversion  code-golf  graphical-output  geometry  3d  code-golf  math  linear-algebra  matrix  code-golf  math  number  sequence  code-golf  array-manipulation  code-golf  math  matrix  linear-algebra  code-golf  number  sequence  counting  code-golf  string  code-golf  string  restricted-source  quine  sorting  code-golf  string  geometry  code-golf  string  code-golf  networking  code-golf  base-conversion  code-golf  math  matrix  code-golf  arithmetic  linear-algebra  matrix  code-golf  number  arithmetic  grid  code-golf  number  source-layout  code-golf  string  bitwise  checksum  code-golf  array-manipulation  code-golf  string  probability-theory  code-golf  tips  code-golf  sequence  code-golf  string  math  sequence  calculus  code-golf  string  palindrome  bioinformatics  code-golf  math  combinatorics  counting  permutations  code-golf  parsing  logic-gates  code-golf  arithmetic  number-theory  combinatorics  code-golf  math  sequence  polynomials  integer  code-golf  string  ascii-art  chess  code-golf  string  code-golf  number  code-golf  string  ascii-art  parsing  code-golf  code-golf  number  natural-language  conversion  code-golf  arithmetic  code-golf  string  code-golf  ascii-art  decision-problem 

8
四面体表面积
挑战 这个挑战非常简单。给定四个3维点,计算它们形成的四面体的表面积。这是代码高尔夫球,因此最短的代码获胜。存在标准漏洞,并增加了规定,在给出四点的情况下,禁止执行此任务的任何内置功能。 您可以假设所有四个点都是不同的,并且将通过STDIN给出,每行1个点。每个点将由三个16位无符号整数组成。如果使每个点更简单,则可以修改每个点的确切格式,例如三个空格分隔的整数。但是,必须将每个点放在单独的线上。输出应通过STDOUT进行,至少要保留两位小数。 对于不知道的人,四面体是一个3维立体,由4个三角形的面组成。 例 # input (format is up to you, see clarification above) [23822, 47484, 57901] [3305, 23847, 42159] [19804, 11366, 14013] [52278, 28626, 52757] # output 2932496435.95 如果您发现我的数学错误,请留下笔记。
16 code-golf  math  3d 

1
射线追踪闪亮的球体
我下载了POV-ray,并渲染了这种有光泽的90年代金属球体样式: 您的任务是做同样的事情,但要通过自己以尽可能少的字节实现渲染引擎来实现。您不必复制此精确图像-只要符合以下条件,无穷棋盘上方反射球的任何图像都可以。 规则: 该图像必须描绘出一个悬在无限棋盘上方的反射球体。图像本身必须同时显示棋盘本身及其在球体中的反射。必须在视觉上清楚地知道这就是我们所看到的。除此之外,几何形状,颜色,材料属性等的详细信息取决于您。 场景中必须有一些照明:球体的某些部分应该比其他部分更暗,并且在视觉上应该可以大致分辨出光线的来源。除此之外,照明模型的细节由您决定。(如果愿意,可以发明自己的简化照明模型。)球体不必投射阴影。 以上两个标准-是否真的看起来像是被光源照亮的棋盘上方的发光球-将由社区使用投票进行判断。因此,答案必须有一个积极的分数,才有资格获胜。 输出必须至少为300x300像素。可以将其显示在屏幕上或写入文件,也可以。 您的代码应该在一台合理的现代计算机上运行不到一个小时。(这很慷慨-POV射线实际上是在瞬间渲染上述场景。) 不能使用内置的光线跟踪功能-您必须自己实现渲染器。 这是code-golf,因此具有最短代码(以字节为单位)的正得分条目将获胜。但是,也欢迎您玩一幅通过画一幅漂亮的图画来获得最多选票的元游戏(同时当然要使代码尽量简短)。 这个挑战看似很难,但由于几何形状是固定的,因此通过光线跟踪渲染这种场景的算法非常简单。这实际上只是在输出图像中的每个像素上进行迭代并评估数学表达式以查看其应为哪种颜色的情况,因此,我很乐意看到一些好的答案。

6
二进制自转
给定一个二进制3D数组,对于每一层,按其上一层的各列的二进制编码所示,将其每一列循环向上旋转许多步,然后按如下所示将其每一行循环左旋转许多步下方图层的行的二进制编码。 总会有至少三层。顶层的列和底层的行不应旋转。 演练 让我们从小的4层2行3列数组开始: [[[1,0,1], [1,0,0]], [[1,0,1], [0,1,1]], [[0,1,1], [1,1,1]], [[1,1,0], [1,1,1]]] 第一步是评估每一层的列和行以二进制编码的数字: 3 0 2 5 [[[1,0,1], 4 [1,0,0]], 2 1 3 5 [[1,0,1], 3 [0,1,1]], 1 3 3 3 [[0,1,1], 7 [1,1,1]], 3 3 1 6 [[1,1,0], 7 [1,1,1]]] 第一层[[1,0,1],[1,0,0]]不会旋转其列,但其行将分别向左循环5步和3步,从而变为[[1,1,0],[1,0,0]]。 第二层[[1,0,1],[0,1,1]]的列将分别循环向上旋转3、0和2步,给出[[0,0,1],[1,1,1]],然后将行分别向左循环旋转3和7步,没有可见变化。向上旋转2、1、3步 的第三层[[0,1,1],[1,1,1]]保持不变,向左旋转6、7步也没有任何作用。 最后,[[1,1,0],[1,1,1]]向上旋转了1、3和3步的第四层是[[1,1,1],[1,1,0]],但是之后的行不再旋转,因为它是最后一层。 再次将所有图层放在一起,便得到了二进制自旋转3D数组: [[[1,1,0], [1,0,0]], [[0,0,1], [1,1,1]], …

4
获取吸气剂
任务 我想每个人都喜欢自动代码生成并节省工作时间。您白天必须创建许多类和成员,而又不想getters手动创建所有这些类和成员。 任务是编写一个程序或函数,该程序或函数getters将为您自动为所有类成员生成。 输入 在我们的语言中,对象非常简单。类和成员的名称必须以字符开头,[a-zA-Z]并且只能包含字符[a-zA-Z0-9]。这是一个例子: class Stack { public overflow; protected trace; private errorReport; } 输出 这是基于给定示例的有效输出: class Stack { public overflow; protected trace; private errorReport; public function getOverflow() { return this->overflow; } public function getTrace() { return this->trace; } public function getErrorReport() { return this->errorReport; } } 吸气剂 getter方法的要求是: …
13 code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

8
排版多维标签
在一个蒸汽朋克的多维世界中,我们的老板想在集团的多维文件柜中的每个抽屉上粘贴打印的索引标签。 老板希望使用仅为此目的而购买的字体将整个标签纸排版为单个表格,因此我们必须订购分类(金属符号片)。由于排序非常昂贵,因此我们的订购必须针对每个数字符号的准确计数。 对于给定的(以任何方式)长度≥0的一组长度,返回(以任何方式)我们的命令,这是排版所有笛卡尔坐标所需的数字频率表。它必须按键盘的出现顺序排列(即9之后为0),并且可能不包含0种排序的顺序,因此,如果根本不排序(因为尺寸的长度为0),则不能排序。什么都不打印。 如果您的代码也可以处理(即不打印任何内容)0个维度,则-3分的奖励。 最终换行符是可以接受的。 禁止使用标准漏洞。 如前所述,排序很昂贵,因此是codecolf。 善良的灵魂可能会编辑此挑战,以包括自动评分,因此请添加标题,例如:# LanguageName, 123 sorts 测试用例 给定11,打印: 1 4 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 0 1 因为所需要的标签1,2,3,4,5,6,7,8,9,10,和11。 给定2 3,打印: 1 5 2 5 3 2 因为所需要的标签1 1, 1 2, 1 3, 2 1, …

3
画一个简单的立方体
关于绘制真实的3D多维数据集,我们没有一个单一的挑战,所以就这样: 挑战 您的任务是绘制带有透视图的旋转立方体。它可以在单独的窗口中或作为图像。 输入值 您输入的是3个介于0和359.99之间的数字...这些数字表示围绕x,y和z轴的旋转(以度为单位)。 0 0 0 30 0 40 95 320 12 输出量 您可以在单独的窗口中显示它或保存图像。您可以使用任何类型的显示(基于矢量,光栅化等)。 编辑:也允许ASCII,以仅显示文本输出来允许高尔夫语言。 光栅化或ASCII图形的输出必须至少为50 * 50(光栅化像素,ASCII字符) 附加信息 正Z轴从窗口指向,x轴为水平,y轴为垂直。基本上是OpenGL标准。 如果沿特定轴的负方向查看多维数据集,则逆时针旋转,例如向下看y轴。 相机应位于z轴上,在负z方向上与多维数据集相距一段合理的距离,该多维数据集应位于(0; 0; 0)。的。立方体还需要完全可见,并至少占据绘图框的50%。相机应在z轴正方向看立方体。 立方体的旋转按x-> y-> z顺序应用。 立方体绕其中心旋转,不移动。 要在2d空间中投影多维数据集,您需要将多维数据集的x和y坐标除以与点和相机之间与z轴平行的距离。 规则 允许使用渲染库,但需要在代码中定义顶点。没有3D立方体模型类。 测试用例
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.