Libraryless. Click here for Pure Java version (141L/1K).
// cycleLength e.g. 360 static double cyclicDistance(double a, double b, double cycleLength) { a = mod(a, cycleLength); // a is now between 0 and 360 b = mod(b, cycleLength); // b is now between 0 and 360 // if e.g. a is 40 and b is 50, then distance is 10 // if e.g. a is 10 and b is 350, then distance is 20 // if e.g. b is 10 and a is 350, then distance is 20 double diff = absDiff(a, b); if (a < b) diff = min(diff, a+cycleLength-b); else diff = min(diff, b+cycleLength-a); ret diff; }
download show line numbers debug dex old transpilations
Travelled to 3 computer(s): bhatertpkbcr, mowyntqkapby, mqqgnosmbjvj
No comments. add comment
| Snippet ID: | #1035274 |
| Snippet name: | cyclicDistance - absolute distance between two values on a cyclic scale (e.g. angles) |
| Eternal ID of this version: | #1035274/2 |
| Text MD5: | cb37c4cdad2ce8fe364a64d57b16fa99 |
| Transpilation MD5: | 643e0fb21613d3f592eb466171ed90f0 |
| Author: | stefan |
| Category: | javax / maths |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2022-04-28 20:44:35 |
| Source code size: | 532 bytes / 15 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 387 / 500 |
| Version history: | 1 change(s) |
| Referenced in: | [show references] |