题
我希望对 StackOverflow 上找到的这些 Identicons 或 Gravatars 进行自己的实现。我发现的大多数问题都是关于利用现有的第三方库,尤其是那些与 头像.
(来源: 悬浮网)
经过一番搜索后我偶然发现 这一页. 。而且从表面上看,这并不难。需要随机抽取的是:
- 一种形状位于中间
- 角的一种形状
- 边缘的一种形状
- 2种颜色
- 除中间形状外的所有形状的旋转
使用 md5 哈希值作为随机数生成器的种子并开始检索随机数。然后,将 (pi/2)*i 添加到边缘周围的每个形状,以创建很酷的径向对称效果。
你可以说我在这里用文字思考,但我想知道我是否误解了什么。另外,如果您有任何想法,可以将更多内容随机化以增加多样性。如果我开始更改以下内容,外观或感觉是否会“损坏”:
- 形状的比例?
- 然后也许还有块内形状的位置偏移?
- 选择两种以上颜色?每个块有两种颜色具有相同的径向对称性?
解决方案
正如您在本网站上自己的头像中看到的那样,您可以选择 4x4 场地。每侧的偶数个单元对中间使用的形状的限制较小,因为它们也会旋转。
如果旋转的话,可以允许偏移。两个维度上相等的偏移可能看起来更对称并且可能会受到青睐,但没有必要这样做。
您还可以以不同的方式旋转 180°,从而失去一些对称性,但正如您所看到的 这里, ,它确实为您提供了有趣的标识符。
当然,您可以选择两种以上的颜色。从审美的角度来看,在特定方案中明智地选择颜色。也许一些效果,比如逐渐使边缘的颜色变浅或变深,看起来会很有趣。
我是否正确理解您的意思,您将使用用户电子邮件地址的 MD5 值作为随机生成器的种子,从而能够动态重新计算他的头像?那么不需要让他创建一个帐户。
不隶属于 StackOverflow