mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-04 22:34:53 +08:00
[ts] Updated noRotationOrReflection math
This commit is contained in:
parent
9197f6f0f7
commit
a19d8fbd16
@ -1899,32 +1899,27 @@ var spine;
|
||||
break;
|
||||
}
|
||||
case spine.TransformMode.NoRotationOrReflection: {
|
||||
var psx = Math.sqrt(pa * pa + pc * pc);
|
||||
var psy = 0;
|
||||
var s = pa * pa + pc * pc;
|
||||
var prx = 0;
|
||||
if (psx > 0.0001) {
|
||||
psy = Math.abs((pa * pd - pb * pc) / psx);
|
||||
if (s > 0.0001) {
|
||||
s = Math.abs(pa * pd - pb * pc) / s;
|
||||
pb = pc * s;
|
||||
pd = pa * s;
|
||||
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
||||
}
|
||||
else {
|
||||
psx = 0;
|
||||
psy = Math.sqrt(pb * pb + pd * pd);
|
||||
pa = 0;
|
||||
pc = 0;
|
||||
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
||||
}
|
||||
var cos = spine.MathUtils.cosDeg(prx);
|
||||
var sin = spine.MathUtils.sinDeg(prx);
|
||||
pa = cos * psx;
|
||||
pb = -sin * psy;
|
||||
pc = sin * psx;
|
||||
pd = cos * psy;
|
||||
var rx = rotation + shearX - prx;
|
||||
var ry = rotation + shearY - prx + 90;
|
||||
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
||||
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
||||
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
||||
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
||||
this.a = pa * la + pb * lc;
|
||||
this.b = pa * lb + pb * ld;
|
||||
this.a = pa * la - pb * lc;
|
||||
this.b = pa * lb - pb * ld;
|
||||
this.c = pc * la + pd * lc;
|
||||
this.d = pc * lb + pd * ld;
|
||||
break;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1899,32 +1899,27 @@ var spine;
|
||||
break;
|
||||
}
|
||||
case spine.TransformMode.NoRotationOrReflection: {
|
||||
var psx = Math.sqrt(pa * pa + pc * pc);
|
||||
var psy = 0;
|
||||
var s = pa * pa + pc * pc;
|
||||
var prx = 0;
|
||||
if (psx > 0.0001) {
|
||||
psy = Math.abs((pa * pd - pb * pc) / psx);
|
||||
if (s > 0.0001) {
|
||||
s = Math.abs(pa * pd - pb * pc) / s;
|
||||
pb = pc * s;
|
||||
pd = pa * s;
|
||||
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
||||
}
|
||||
else {
|
||||
psx = 0;
|
||||
psy = Math.sqrt(pb * pb + pd * pd);
|
||||
pa = 0;
|
||||
pc = 0;
|
||||
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
||||
}
|
||||
var cos = spine.MathUtils.cosDeg(prx);
|
||||
var sin = spine.MathUtils.sinDeg(prx);
|
||||
pa = cos * psx;
|
||||
pb = -sin * psy;
|
||||
pc = sin * psx;
|
||||
pd = cos * psy;
|
||||
var rx = rotation + shearX - prx;
|
||||
var ry = rotation + shearY - prx + 90;
|
||||
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
||||
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
||||
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
||||
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
||||
this.a = pa * la + pb * lc;
|
||||
this.b = pa * lb + pb * ld;
|
||||
this.a = pa * la - pb * lc;
|
||||
this.b = pa * lb - pb * ld;
|
||||
this.c = pc * la + pd * lc;
|
||||
this.d = pc * lb + pd * ld;
|
||||
break;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1656,32 +1656,27 @@ var spine;
|
||||
break;
|
||||
}
|
||||
case spine.TransformMode.NoRotationOrReflection: {
|
||||
var psx = Math.sqrt(pa * pa + pc * pc);
|
||||
var psy = 0;
|
||||
var s = pa * pa + pc * pc;
|
||||
var prx = 0;
|
||||
if (psx > 0.0001) {
|
||||
psy = Math.abs((pa * pd - pb * pc) / psx);
|
||||
if (s > 0.0001) {
|
||||
s = Math.abs(pa * pd - pb * pc) / s;
|
||||
pb = pc * s;
|
||||
pd = pa * s;
|
||||
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
||||
}
|
||||
else {
|
||||
psx = 0;
|
||||
psy = Math.sqrt(pb * pb + pd * pd);
|
||||
pa = 0;
|
||||
pc = 0;
|
||||
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
||||
}
|
||||
var cos = spine.MathUtils.cosDeg(prx);
|
||||
var sin = spine.MathUtils.sinDeg(prx);
|
||||
pa = cos * psx;
|
||||
pb = -sin * psy;
|
||||
pc = sin * psx;
|
||||
pd = cos * psy;
|
||||
var rx = rotation + shearX - prx;
|
||||
var ry = rotation + shearY - prx + 90;
|
||||
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
||||
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
||||
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
||||
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
||||
this.a = pa * la + pb * lc;
|
||||
this.b = pa * lb + pb * ld;
|
||||
this.a = pa * la - pb * lc;
|
||||
this.b = pa * lb - pb * ld;
|
||||
this.c = pc * la + pd * lc;
|
||||
this.d = pc * lb + pd * ld;
|
||||
break;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1656,32 +1656,27 @@ var spine;
|
||||
break;
|
||||
}
|
||||
case spine.TransformMode.NoRotationOrReflection: {
|
||||
var psx = Math.sqrt(pa * pa + pc * pc);
|
||||
var psy = 0;
|
||||
var s = pa * pa + pc * pc;
|
||||
var prx = 0;
|
||||
if (psx > 0.0001) {
|
||||
psy = Math.abs((pa * pd - pb * pc) / psx);
|
||||
if (s > 0.0001) {
|
||||
s = Math.abs(pa * pd - pb * pc) / s;
|
||||
pb = pc * s;
|
||||
pd = pa * s;
|
||||
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
||||
}
|
||||
else {
|
||||
psx = 0;
|
||||
psy = Math.sqrt(pb * pb + pd * pd);
|
||||
pa = 0;
|
||||
pc = 0;
|
||||
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
||||
}
|
||||
var cos = spine.MathUtils.cosDeg(prx);
|
||||
var sin = spine.MathUtils.sinDeg(prx);
|
||||
pa = cos * psx;
|
||||
pb = -sin * psy;
|
||||
pc = sin * psx;
|
||||
pd = cos * psy;
|
||||
var rx = rotation + shearX - prx;
|
||||
var ry = rotation + shearY - prx + 90;
|
||||
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
||||
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
||||
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
||||
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
||||
this.a = pa * la + pb * lc;
|
||||
this.b = pa * lb + pb * ld;
|
||||
this.a = pa * la - pb * lc;
|
||||
this.b = pa * lb - pb * ld;
|
||||
this.c = pc * la + pd * lc;
|
||||
this.d = pc * lb + pd * ld;
|
||||
break;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1656,32 +1656,27 @@ var spine;
|
||||
break;
|
||||
}
|
||||
case spine.TransformMode.NoRotationOrReflection: {
|
||||
var psx = Math.sqrt(pa * pa + pc * pc);
|
||||
var psy = 0;
|
||||
var s = pa * pa + pc * pc;
|
||||
var prx = 0;
|
||||
if (psx > 0.0001) {
|
||||
psy = Math.abs((pa * pd - pb * pc) / psx);
|
||||
if (s > 0.0001) {
|
||||
s = Math.abs(pa * pd - pb * pc) / s;
|
||||
pb = pc * s;
|
||||
pd = pa * s;
|
||||
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
||||
}
|
||||
else {
|
||||
psx = 0;
|
||||
psy = Math.sqrt(pb * pb + pd * pd);
|
||||
pa = 0;
|
||||
pc = 0;
|
||||
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
||||
}
|
||||
var cos = spine.MathUtils.cosDeg(prx);
|
||||
var sin = spine.MathUtils.sinDeg(prx);
|
||||
pa = cos * psx;
|
||||
pb = -sin * psy;
|
||||
pc = sin * psx;
|
||||
pd = cos * psy;
|
||||
var rx = rotation + shearX - prx;
|
||||
var ry = rotation + shearY - prx + 90;
|
||||
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
||||
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
||||
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
||||
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
||||
this.a = pa * la + pb * lc;
|
||||
this.b = pa * lb + pb * ld;
|
||||
this.a = pa * la - pb * lc;
|
||||
this.b = pa * lb - pb * ld;
|
||||
this.c = pc * la + pd * lc;
|
||||
this.d = pc * lb + pd * ld;
|
||||
break;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1656,32 +1656,27 @@ var spine;
|
||||
break;
|
||||
}
|
||||
case spine.TransformMode.NoRotationOrReflection: {
|
||||
var psx = Math.sqrt(pa * pa + pc * pc);
|
||||
var psy = 0;
|
||||
var s = pa * pa + pc * pc;
|
||||
var prx = 0;
|
||||
if (psx > 0.0001) {
|
||||
psy = Math.abs((pa * pd - pb * pc) / psx);
|
||||
if (s > 0.0001) {
|
||||
s = Math.abs(pa * pd - pb * pc) / s;
|
||||
pb = pc * s;
|
||||
pd = pa * s;
|
||||
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
||||
}
|
||||
else {
|
||||
psx = 0;
|
||||
psy = Math.sqrt(pb * pb + pd * pd);
|
||||
pa = 0;
|
||||
pc = 0;
|
||||
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
||||
}
|
||||
var cos = spine.MathUtils.cosDeg(prx);
|
||||
var sin = spine.MathUtils.sinDeg(prx);
|
||||
pa = cos * psx;
|
||||
pb = -sin * psy;
|
||||
pc = sin * psx;
|
||||
pd = cos * psy;
|
||||
var rx = rotation + shearX - prx;
|
||||
var ry = rotation + shearY - prx + 90;
|
||||
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
||||
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
||||
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
||||
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
||||
this.a = pa * la + pb * lc;
|
||||
this.b = pa * lb + pb * ld;
|
||||
this.a = pa * la - pb * lc;
|
||||
this.b = pa * lb - pb * ld;
|
||||
this.c = pc * la + pd * lc;
|
||||
this.d = pc * lb + pd * ld;
|
||||
break;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -127,31 +127,26 @@ module spine {
|
||||
break;
|
||||
}
|
||||
case TransformMode.NoRotationOrReflection: {
|
||||
let psx = Math.sqrt(pa * pa + pc * pc)
|
||||
let psy = 0;
|
||||
let s = pa * pa + pc * pc;
|
||||
let prx = 0;
|
||||
if (psx > 0.0001) {
|
||||
psy = Math.abs((pa * pd - pb * pc) / psx);
|
||||
if (s > 0.0001) {
|
||||
s = Math.abs(pa * pd - pb * pc) / s;
|
||||
pb = pc * s;
|
||||
pd = pa * s;
|
||||
prx = Math.atan2(pc, pa) * MathUtils.radDeg;
|
||||
} else {
|
||||
psx = 0;
|
||||
psy = Math.sqrt(pb * pb + pd * pd);
|
||||
pa = 0;
|
||||
pc = 0;
|
||||
prx = 90 - Math.atan2(pd, pb) * MathUtils.radDeg;
|
||||
}
|
||||
let cos = MathUtils.cosDeg(prx);
|
||||
let sin = MathUtils.sinDeg(prx);
|
||||
pa = cos * psx;
|
||||
pb = -sin * psy;
|
||||
pc = sin * psx;
|
||||
pd = cos * psy;
|
||||
let rx = rotation + shearX - prx;
|
||||
let ry = rotation + shearY - prx + 90;
|
||||
let la = MathUtils.cosDeg(rx) * scaleX;
|
||||
let lb = MathUtils.cosDeg(ry) * scaleY;
|
||||
let lc = MathUtils.sinDeg(rx) * scaleX;
|
||||
let ld = MathUtils.sinDeg(ry) * scaleY;
|
||||
this.a = pa * la + pb * lc;
|
||||
this.b = pa * lb + pb * ld;
|
||||
this.a = pa * la - pb * lc;
|
||||
this.b = pa * lb - pb * ld;
|
||||
this.c = pc * la + pd * lc;
|
||||
this.d = pc * lb + pd * ld;
|
||||
break;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user