@@ -413,15 +413,15 @@ tailDir = tailDir.applyQuaternion(rotation);
413
413
以下は、擬似コードによるコーンリミットの参考実装です。
414
414
415
415
``` ts
416
- // tailDirのy要素をjointに設定されたangleの余弦と比較する
417
- let cosAngle = cos (joint .angle );
416
+ // tailDirのy要素をlimitに設定されたangleの余弦と比較する
417
+ let cosAngle = cos (limit .angle );
418
418
if (tailDir .y < cosAngle ) {
419
- // x・z要素を、tailDirの正弦とjointに設定されたangleの正弦の比を用いてスケールする
419
+ // x・z要素を、tailDirの正弦とlimitに設定されたangleの正弦の比を用いてスケールする
420
420
let ratio = sqrt ((1.0 - cosAngle * cosAngle ) / (1.0 - tailDir .y * tailDir .y ));
421
421
tailDir .x *= ratio ;
422
422
tailDir .z *= ratio ;
423
423
424
- // y要素を、jointに設定されたangleの余弦とする
424
+ // y要素を、limitに設定されたangleの余弦とする
425
425
tailDir .y = cosAngle ;
426
426
}
427
427
```
@@ -435,14 +435,14 @@ if (tailDir.y < cosAngle) {
435
435
tailDir .x = 0.0 ;
436
436
tailDir = tailDir .normalized ;
437
437
438
- // tailDirのy要素をjointに設定されたangleの余弦と比較する
439
- let cosAngle = cos (joint .angle );
438
+ // tailDirのy要素をlimitに設定されたangleの余弦と比較する
439
+ let cosAngle = cos (limit .angle );
440
440
if (tailDir .y < cosAngle ) {
441
- // z要素を、tailDirの正弦とjointに設定されたangleの正弦の比を用いてスケールする
441
+ // z要素を、tailDirの正弦とlimitに設定されたangleの正弦の比を用いてスケールする
442
442
let ratio = sqrt ((1.0 - cosAngle * cosAngle ) / (1.0 - tailDir .y * tailDir .y ));
443
443
tailDir .z *= ratio ;
444
444
445
- // y要素を、jointに設定されたangleの余弦とする
445
+ // y要素を、limitに設定されたangleの余弦とする
446
446
tailDir .y = cosAngle ;
447
447
}
448
448
```
@@ -456,16 +456,16 @@ if (tailDir.y < cosAngle) {
456
456
var phi = atan2 (tailDir .z , tailDir .y );
457
457
var theta = asin (tailDir .x );
458
458
459
- // phi・thetaをjointに設定されたphi ・thetaを用いて制限する
460
- if (abs (phi ) > joint .phi ) {
459
+ // phi・thetaをlimitに設定されたphi ・thetaを用いて制限する
460
+ if (abs (phi ) > limit .phi ) {
461
461
isLimited = true ;
462
- phi = joint .phi * sign (phi );
462
+ phi = limit .phi * sign (phi );
463
463
}
464
464
465
- // thetaをjointに設定されたthetaを用いて制限する
466
- if (abs (theta ) > joint .theta ) {
465
+ // thetaをlimitに設定されたthetaを用いて制限する
466
+ if (abs (theta ) > limit .theta ) {
467
467
isLimited = true ;
468
- theta = joint .theta * sign (theta );
468
+ theta = limit .theta * sign (theta );
469
469
}
470
470
471
471
// tailDirをphi・thetaを用いて再計算する
0 commit comments