我昨天才了解徽标。出生于90年代,我从未见过它。因此,我开始使用由Joshua Bell编写的在线Logo Interpreter,我决定编写circle函数来制作同心圆。这是我写的:

cs

to circle
penup forward :radius right 90
pendown repeat 360 [forward 3.14 * :radius / 180 right 1]
penup left 90 back :radius pendown
end

make "radius 30

repeat 160 [circle make "radius :radius + 30]

有趣的是,绘图 Canvas 是一个环形阵列。因此,圆圈最终重叠。通过绘制半径为30的倍数的半径增加的160个同心圆,我最终得到了如下图像:

这真是令人惊讶。乍一看,它看起来像是真实的夜空图片,这让我开始思考-是否有绘制星空的通用算法?

顺便说一句,如果您仔细观察,您会看到30 x 30像素正方形的网格。边界是黑色的,因此很难注意到。

最佳答案

作为《矮人要塞》的狂热玩家,我会寻求一个分形公式来生成星星。我认为计算机随机性还不够好。再次借用DF游戏,我将添加各种步骤来增强星空效果,例如随机化形状,颜色,大小,辉光,星团(有意将一团星星加在一起)。

如果您想逼真的,还可以模拟气体背景。空间不是纯黑色背景上的白点。

最后,我建议您获取一些空间图像(从我们的老 friend 哈勃望远镜获得),并尝试尽可能忠实地复制它。然后使用参数来达到您的喜好(也许您想以此来制作游戏)。

附注:我没有指定任何编码语言,因为我认为它不是关于代码的问题(它很基本),而是设计问题。您在Flash / Actionscript中比Java容易得多。

07-26 09:32