[libgdx] Fix NaN in IKConstraint due to fp precision.

853b5ee165106a57bc18e1e5543c8e16311af62f
This commit is contained in:
Nathan Sweet 2024-08-06 19:21:45 -10:00
parent b17595db8a
commit 877e705ddb

View File

@ -339,8 +339,9 @@ public class IkConstraint implements Updatable {
q = -(c1 + q) * 0.5f; q = -(c1 + q) * 0.5f;
float r0 = q / c2, r1 = c / q; float r0 = q / c2, r1 = c / q;
float r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; float r = Math.abs(r0) < Math.abs(r1) ? r0 : r1;
if (r * r <= dd) { r0 = dd - r * r;
y = (float)Math.sqrt(dd - r * r) * bendDir; if (r0 >= 0) {
y = (float)Math.sqrt(r0) * bendDir;
a1 = ta - atan2(y, r); a1 = ta - atan2(y, r);
a2 = atan2(y / psy, (r - l1) / psx); a2 = atan2(y / psy, (r - l1) / psx);
break outer; break outer;