MathUtils.euclideanModulo 的用途是什么?它与常规模数有何不同?
What is the purpose of MathUtils.euclideanModulo, and how is it different from a regular modulo?
我对threejs中mathuils的euclideanModulo方法有点疑惑。
我已经知道模符号的作用,但是 euclideanModulo 看起来很不一样。
( ( n % m ) + m ) % m
我试着查找欧几里德的语义,但它只说了这个:
relating to or denoting the system of geometry based on the work of
Euclid and corresponding to the geometry of ordinary experience.
谁能解释一下?我在任何地方都找不到进一步的解释?
使用负数时会出现 well-documented Javascript 模数错误。您可以将 x % 4
视为数字轮:
- 当 x 从 0 变为正数时,您的结果是:
0, 1, 2, 3, 0, 1, 2, ...
。
- 当x从0变为负数时,结果为:
0, 3, 2, 1, 0, 3, 2, ...
但在 JavaScript 中,当您执行 -5 % 4
时,您会得到 -1
,这不是正确答案。它甚至不在可能的答案列表中。怎么可能有负余数?!答案应该是3
。这是正确答案与错误 Javascript 答案的列表:
1 % 4 = 1 // JS gives you 1
0 % 4 = 0 // JS gives you 0
-1 % 4 = 3 // JS gives you -1
-2 % 4 = 2 // JS gives you -2
-3 % 4 = 1 // JS gives you -3
-4 % 4 = 0 // JS gives you -0
-5 % 4 = 3 // JS gives you -1
为了让您的生活更轻松,Three.js 为您提供了一个实用程序来获得正确答案以规避此 JavaScript 错误。 THREE.MathUtils.euclideanModulo(-5, 4)
给你正确答案 3
.
我对threejs中mathuils的euclideanModulo方法有点疑惑。 我已经知道模符号的作用,但是 euclideanModulo 看起来很不一样。
( ( n % m ) + m ) % m
我试着查找欧几里德的语义,但它只说了这个:
relating to or denoting the system of geometry based on the work of Euclid and corresponding to the geometry of ordinary experience.
谁能解释一下?我在任何地方都找不到进一步的解释?
使用负数时会出现 well-documented Javascript 模数错误。您可以将 x % 4
视为数字轮:
- 当 x 从 0 变为正数时,您的结果是:
0, 1, 2, 3, 0, 1, 2, ...
。 - 当x从0变为负数时,结果为:
0, 3, 2, 1, 0, 3, 2, ...
但在 JavaScript 中,当您执行 -5 % 4
时,您会得到 -1
,这不是正确答案。它甚至不在可能的答案列表中。怎么可能有负余数?!答案应该是3
。这是正确答案与错误 Javascript 答案的列表:
1 % 4 = 1 // JS gives you 1
0 % 4 = 0 // JS gives you 0
-1 % 4 = 3 // JS gives you -1
-2 % 4 = 2 // JS gives you -2
-3 % 4 = 1 // JS gives you -3
-4 % 4 = 0 // JS gives you -0
-5 % 4 = 3 // JS gives you -1
为了让您的生活更轻松,Three.js 为您提供了一个实用程序来获得正确答案以规避此 JavaScript 错误。 THREE.MathUtils.euclideanModulo(-5, 4)
给你正确答案 3
.