affine: Bug fix: (*GeoM).det() was wrong (#547)

This commit is contained in:
Hajime Hoshi 2018-03-12 11:11:53 +09:00
parent e81c83dfe6
commit 61d7f1e9b5
2 changed files with 10 additions and 1 deletions

View File

@ -201,6 +201,11 @@ func TestGeoMIsInvert(t *testing.T) {
cpx.Scale(1.5, 2.5) cpx.Scale(1.5, 2.5)
cpx.Translate(-2, -3) cpx.Translate(-2, -3)
cpx2 := GeoM{}
cpx2.Scale(2, 3)
cpx2.Rotate(0.234)
cpx2.Translate(100, 100)
cases := []struct { cases := []struct {
GeoM GeoM GeoM GeoM
Invertible bool Invertible bool
@ -225,6 +230,10 @@ func TestGeoMIsInvert(t *testing.T) {
GeoM: cpx, GeoM: cpx,
Invertible: true, Invertible: true,
}, },
{
GeoM: cpx2,
Invertible: true,
},
} }
pts := []struct { pts := []struct {

View File

@ -188,7 +188,7 @@ func (g *GeoM) det() float64 {
if g == nil { if g == nil {
return 1 return 1
} }
return (g.a_1+1)*(g.d_1+1) - g.b - g.c return (g.a_1+1)*(g.d_1+1) - g.b*g.c
} }
func (g *GeoM) IsInvertible() bool { func (g *GeoM) IsInvertible() bool {