geom.go
func (g *GeoM) Skew(skewX, skewY float64) {
	sx64 := math.Tan(skewX)
	sy64 := math.Tan(skewY)
	sx, sy := float32(sx64), float32(sy64)

	a := (g.a_1 + 1) + g.c*sx
	b := g.b + (g.d_1+1)*sx
	c := (g.a_1+1)*sy + g.c
	d := g.b*sy + (g.d_1 + 1)
	tx := g.tx + g.ty*sx
	ty := g.ty + g.tx*sy

	g.a_1 = a - 1
	g.b = b
	g.c = c
	g.d_1 = d - 1
	g.tx = tx
	g.ty = ty
}
func (g *GeoM) Skew(skewX, skewY float64) {
	sx64 := math.Tan(skewX)
	sy64 := math.Tan(skewY)
	sx, sy := float32(sx64), float32(sy64)

	a := (g.a_1 + 1) + g.c*sx
	b := g.b + (g.d_1+1)*sx
	c := (g.a_1+1)*sy + g.c
	d := g.b*sy + (g.d_1 + 1)
	tx := g.tx + g.ty*sx
	ty := g.ty + g.tx*sy

	g.a_1 = a - 1
	g.b = b
	g.c = c
	g.d_1 = d - 1
	g.tx = tx
	g.ty = ty
}
func ( g * GeoM ) Skew ( skewX , skewY float64 ) { sx64 := math . Tan ( skewX ) sy64 := math . Tan ( skewY ) sx , sy := float32 ( sx64 ) , float32 ( sy64 ) a := ( g . a_1 + 1 ) + g . c * sx b := g . b + ( g . d_1 + 1 ) * sx c := ( g . a_1 + 1 ) * sy + g . c d := g . b * sy + ( g . d_1 + 1 ) tx := g . tx + g . ty * sx ty := g . ty + g . tx * sy g . a_1 = a - 1 g . b = b g . c = c g . d_1 = d - 1 g . tx = tx g . ty = ty }
// Skew skews the matrix by (skewX, skewY). The unit is radian.
Skew skews the matrix by ( skewX skewY ) . The unit is radian .