Difference between revisions of "love.graphics.shear"

(Added love.graphics.shear.)
 
(Note about persistence.)
 
(9 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
{{newin|[[0.8.0]]|080|type=function}}
 
{{newin|[[0.8.0]]|080|type=function}}
 
Shears the coordinate system.
 
Shears the coordinate system.
 +
 +
This change lasts until the next [[love.draw]] call, or a [[love.graphics.pop]] reverts to a previous [[love.graphics.push]], or [[love.graphics.origin]] is called - whichever comes first.
 +
 +
{{notice|In version 0.9.2, a bug caused this function to reset all transformations. It was fixed in [[0.10.0]]. A workaround for 0.9.2 would be to use a combination of rotating and scaling to imitate shearing.}}
 +
 
== Function ==
 
== Function ==
 
=== Synopsis ===
 
=== Synopsis ===
Line 11: Line 16:
 
=== Returns ===
 
=== Returns ===
 
Nothing.
 
Nothing.
 +
== Examples ==
 +
=== Squish a rectangle ===
 +
<source lang="lua">
 +
function love.draw()
 +
love.graphics.translate(100, 100)
 +
local t = love.timer.getTime()
 +
love.graphics.shear(math.cos(t), math.cos(t * 1.3))
 +
love.graphics.rectangle('fill', 0, 0, 100, 50)
 +
end
 +
</source>
 +
 
== See Also ==
 
== See Also ==
 
* [[parent::love.graphics]]
 
* [[parent::love.graphics]]
 +
* [[love.graphics.pop]]
 +
* [[love.graphics.push]]
 +
* [[love.graphics.rotate]]
 +
* [[love.graphics.scale]]
 +
* [[love.graphics.translate]]
 +
* [[love.graphics.origin]]
 
[[Category:Functions]]
 
[[Category:Functions]]
 
{{#set:Description=Shears the coordinate system.}}
 
{{#set:Description=Shears the coordinate system.}}
 
{{#set:Since=080}}
 
{{#set:Since=080}}
 +
{{#set:Sub-Category=Coordinate System}}
 
== Other Languages ==
 
== Other Languages ==
 
{{i18n|love.graphics.shear}}
 
{{i18n|love.graphics.shear}}

Latest revision as of 18:22, 3 June 2022

Available since LÖVE 0.8.0
This function is not supported in earlier versions.

Shears the coordinate system.

This change lasts until the next love.draw call, or a love.graphics.pop reverts to a previous love.graphics.push, or love.graphics.origin is called - whichever comes first.

O.png In version 0.9.2, a bug caused this function to reset all transformations. It was fixed in 0.10.0. A workaround for 0.9.2 would be to use a combination of rotating and scaling to imitate shearing.  


Function

Synopsis

love.graphics.shear( kx, ky )

Arguments

number kx
The shear factor on the x-axis.
number ky
The shear factor on the y-axis.

Returns

Nothing.

Examples

Squish a rectangle

function love.draw()
	love.graphics.translate(100, 100)
	local t = love.timer.getTime()
	love.graphics.shear(math.cos(t), math.cos(t * 1.3))
	love.graphics.rectangle('fill', 0, 0, 100, 50)
end

See Also


Other Languages