gpt4 book ai didi

javascript - 将矩阵输出文本更改为西里尔文 unicode 脚本

转载 作者:行者123 更新时间:2023-11-28 08:27:25 29 4
gpt4 key购买 nike

我目前在项目中使用这个Matrix脚本,我想要做的是转换字符输出,以便它打印出西里尔字符而不是中文字符:

      var s = window.screen;
var width = q.width = s.width;
var height = q.height = s.height / 6;
var letters = Array(256).join(1).split('');

var draw = function () {
q.getContext('2d').fillStyle='rgba(0,0,0,.05)';
q.getContext('2d').fillRect(0,0,width,height);
q.getContext('2d').fillStyle="FF0000";
letters.map(function(y_pos, index){
text = String.fromCharCode(3e4+Math.random()*33);
x_pos = index * 10;
q.getContext('2d').fillText(text, x_pos, y_pos);
letters[index] = (y_pos > 768 + Math.random() * 1e4) ? 0 : y_pos + 10;
});
};
setInterval(draw, 33);

据我所知,这两行代码负责将字符打印到屏幕上:

           var letters = Array(256).join(1).split('');


text = String.fromCharCode(3e4+Math.random()*33);

然而,这就是我陷入困境的地方,它似乎是从随机数学运算中打印出来的。我不明白更改此设置并告诉它打印出西里尔文字的 unicode 范围的过程。

任何帮助都会很棒,希望我已经说得足够清楚了。

编辑:

我刚刚尝试了一下并取得了一些进展。西里尔字母的 unicode 范围从 '0410' 到 '042F' - 所以我编辑了

    text = String.fromCharCode(3e4+Math.random()*33);

并将其重写为 文本 = String.fromCharCode(0410, 0411, 0412, 0413, 0414);

此代码可以工作,但它会一次打印所有 5 个字符,并在此过程中破坏矩阵代码。我认为我需要做的是让它打印定义范围内的单个字符,尽管我觉得目前超出了我的理解水平。

最佳答案

原始返回 30000 到 30033 之间的随机数。您可以替换数学以返回您喜欢的任何字符代码。

"3e4+Math.random()*33"使用指数(3e4 转换为 30000)作为底数,然后获取 0 到 33 之间的随机数并将它们相加,以返回 30000 到 30000 之间的字符代码数30033。

String.fromCharCode(3e4+Math.random()*33) 可以写成

String.fromCharCode(30000 + (Math.random() * 33))

为了清楚起见,但乘法不需要用括号括起来。

令我印象深刻的是 String.fromCharCode(0410, 0411, 0412, 0413, 0414) 打印所有五个字符,但这正是它被要求做的。它似乎也不关心我们是否向它传递浮点值并且只是将它们四舍五入。

例如,如果您希望它返回所有大写字母,您需要向其传递数字(或十六进制值)并让它随机获取一个。对于大写字母 A-Z (65 - 90),它需要 26 个字母之一,给我们,

String.fromCharCode(65 + Math.random() * 26)

返回 65 到 90 之间的数字。乘法具有优先级,因此发生在加法之前。

西里尔文基本字符为 1024 至 1279 和 256 个字符:

String.fromCharCode(1024 + Math.random() * 256)

关于javascript - 将矩阵输出文本更改为西里尔文 unicode 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22249523/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com