我有一个程序生成的三维星系,非常大。银河系的规模。它被分成几个扇区,在这些扇区,我可以通过简单的调用就可以相对快速地得到任何给定扇区的恒星密度和平均恒星颜色:
Color GetColorAt(x,y,z); //where hue represents star color and intensity is density
我已经拉在球员的位置周围的扇区,这样玩家就可以通过星星飞行。工作很棒,表现很好。现在,我想要做的是加入来自星系中非常遥远的恒星的集体发光。就像当你看到夜空(在农村地区),你可以看到银河的光辉。所以一种方法是建造一个天窗。对于天空盒的每一个像素,在星系的体积中投出一条射线,
我目前正在尝试编写16位的真正模式引导代码,它打印一个字母,然后从软盘加载第二个段,然后跳转到它,然后再打印一个字母。
然而,我有点困惑的读扇区如何从驱动器调用工作。到目前为止,我的代码如下:
[BITS 16]
org 0x7B00
start:
mov ax, 0xB800 ; Video buffer
mov es, ax ; Copy address of video buffer to extra segment
mov byte [es:0], 'A' ; Move character A to fi
在以显示树的层次结构的方式打印下列树数据类型时,我遇到了困难:
data Tree a b = Branch b (Tree a b) (Tree a b)
| Leaf a
instance (Show a, Show b) => Show (Tree a b) where
show t =
我可以让树以正确的顺序从上到下打印出它的节点,但我不知道如何使show函数跟踪要添加多少空格到一个级别,从而清楚地显示出实际的树结构正在打印。我知道我没有给出太多关于实例定义的内容,但是我真的不知道从哪里开始,因为递归现在对我来说是一件令人困惑的事