回答編集履歴

5

 

2022/02/11 12:15

投稿

退会済みユーザー
test CHANGED
@@ -22,7 +22,7 @@
22
22
  あと直接の原因ではありませんが、tが加算され続けるのも直した方がよいと思います。
23
23
 
24
24
  ---
25
- 直すならば下記のようになるでしょうか。
25
+ バイクが消えるのを直すならば下記のようになるでしょうか。
26
26
  ```
27
27
  let noise = x => {
28
28
  x = x * 0.01 % perm.length;

4

 

2022/02/11 12:14

投稿

退会済みユーザー
test CHANGED
@@ -20,3 +20,15 @@
20
20
 
21
21
  ---
22
22
  あと直接の原因ではありませんが、tが加算され続けるのも直した方がよいと思います。
23
+
24
+ ---
25
+ 直すならば下記のようになるでしょうか。
26
+ ```
27
+ let noise = x => {
28
+ x = x * 0.01 % perm.length;
29
+ const start = Math.floor(x);
30
+ const end = start == perm.length-1 ? 0 : start + 1;
31
+ return lerp(perm[start], perm[end], x - start);
32
+ }
33
+ ```
34
+

3

 

2022/02/11 11:48

投稿

退会済みユーザー
test CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- 掲題のコードだと、perm[Math.ceil(x)] がpermの要素数を超えたアクセスとなっている場合があります。
2
+ 掲題のコードだと、noiseの中で、引数xの値によってperm[Math.ceil(x)] がpermの要素数を超えたアクセスとなる場合があります。
3
3
  このとき、perm[Math.ceil(x)] は undefinedとなり、noiseはNaNを返します。
4
4
 
5
5
  ```js

2

 

2022/02/11 01:38

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
- 掲題のコードだと、permの要素数を超えアクセスる場合があります。
2
+ 掲題のコードだと、perm[Math.ceil(x)] がpermの要素数を超えアクセスとなっている場合があります。
3
- この場合、perm[Math.ceil(x)] は undefinedとなり、noiseはNaNを返します。
3
+ このとき、perm[Math.ceil(x)] は undefinedとなり、noiseはNaNを返します。
4
4
 
5
5
  ```js
6
6
  while (perm.length < 255) {

1

 

2022/02/11 01:34

投稿

退会済みユーザー
test CHANGED
@@ -17,3 +17,6 @@
17
17
  noiseがNaNのとき、this.yがNaNとなるため
18
18
  ctx.translate(this.x, this.y)
19
19
  で左上に固定されて描画されます。
20
+
21
+ ---
22
+ あと直接の原因ではありませんが、tが加算され続けるのも直した方がよいと思います。