Difference between revisions of "love.graphics.draw"

(order of scaling & shearing vs rotation noted)
(Added an example)
Line 1: Line 1:
Draws a [[Drawable]] object (an [[Image]], [[Canvas]], [[SpriteBatch]] or [[ParticleSystem]]) on the screen with optional rotation, scaling and shearing.
+
Draw a Quad with the specified Image on screen.
 
 
Objects are drawn relative to their local coordinate system. The origin is by default located at the top left corner of [[Image]] and [[Canvas]]. All scaling, shearing, and rotation arguments transform the object relative to that point. Also, the position of the origin can be specified on the screen coordinate system.
 
 
 
It's possible to rotate an object about its center by offsetting the origin to the center. Angles must be given in radians for rotation. One can also use a negative scaling factor to flip about its centerline.
 
 
 
Note that the offsets are applied before rotation, scaling, or shearing; scaling and shearing are applied before rotation.
 
 
 
The right and bottom edges of the object are shifted at an angle defined by the shearing factors.
 
 
== Function ==
 
== Function ==
 
=== Synopsis ===
 
=== Synopsis ===
 
<source lang="lua">
 
<source lang="lua">
love.graphics.draw( drawable, x, y, r, sx, sy, ox, oy, kx, ky )
+
love.graphics.drawq( image, quad, x, y, r, sx, sy, ox, oy, kx, ky )
 
</source>
 
</source>
 
=== Arguments ===
 
=== Arguments ===
{{param|Drawable|drawable|A drawable object.}}
+
{{param|Image|image|An image to texture the quad with.}}
{{param|number|x (0)|The position to draw the object (x-axis).}}
+
{{param|Quad|quad|The quad to draw on screen.}}
{{param|number|y (0)|The position to draw the object (y-axis).}}
+
{{param|number|x|The position to draw the object (x-axis).}}
 +
{{param|number|y|The position to draw the object (y-axis).}}
 
{{param|number|r (0)|Orientation (radians).}}
 
{{param|number|r (0)|Orientation (radians).}}
 
{{param|number|sx (1)|Scale factor (x-axis).}}
 
{{param|number|sx (1)|Scale factor (x-axis).}}
Line 28: Line 21:
 
=== Returns ===
 
=== Returns ===
 
Nothing.
 
Nothing.
== Examples ==
+
== Function ==
=== Draw an image (the [https://love2d.org/w/images/c/c3/Resource-HamsterBall.png Hamster Ball]) at 100 by 100 pixels ===
+
=== Synopsis ===
 
<source lang="lua">
 
<source lang="lua">
function love.load()
+
love.graphics.drawq( canvas, quad, x, y, r, sx, sy, ox, oy, kx, ky )
  hamster = love.graphics.newImage("hamster.png")
 
end
 
function love.draw()
 
  love.graphics.draw(hamster, 100, 100)
 
end
 
 
</source>
 
</source>
=== Draw an image (the [https://love2d.org/w/images/c/c3/Resource-HamsterBall.png Hamster Ball]) from the center at 100 by 100 pixels, rotated by 90 degrees ===
+
=== Arguments ===
 +
{{param|Canvas|canvas|A canvas to texture the quad with.}}
 +
{{param|Quad|quad|The quad to draw on screen.}}
 +
{{param|number|x|The position to draw the object (x-axis).}}
 +
{{param|number|y|The position to draw the object (y-axis).}}
 +
{{param|number|r (0)|Orientation (radians).}}
 +
{{param|number|sx (1)|Scale factor (x-axis).}}
 +
{{param|number|sy (sx)|Scale factor (y-axis).}}
 +
{{param|number|ox (0)|Origin offset (x-axis).}}
 +
{{param|number|oy (0)|Origin offset (y-axis).}}
 +
{{New feature|0.8.0|
 +
{{param|number|kx (0)|Shearing factor (x-axis).}}
 +
{{param|number|ky (0)|Shearing factor (y-axis).}}
 +
|080}}
 +
=== Returns ===
 +
Nothing.
 +
== Examples ==
 +
=== Draw the top half of an image (the [https://love2d.org/w/images/c/c3/Resource-HamsterBall.png Hamster Ball]) at 100 by 100 pixels. ===
 
<source lang="lua">
 
<source lang="lua">
function love.load()
+
image = love.graphics.newImage("hamster.png")
  hamster = love.graphics.newImage("hamster.png")
+
quad = love.graphics.newQuad(0, 0, 128, 64, image:getWidth(), image:getHeight())
  width = hamster:getWidth()
+
 
  height = hamster:getHeight()
 
end
 
 
function love.draw()
 
function love.draw()
  love.graphics.draw(hamster, 100, 100, math.rad(90), 1, 1, width / 2, height / 2)
+
love.graphics.drawq(image, quad, 100, 100)
 
end
 
end
 
</source>
 
</source>
 
+
== Changelog ==
 +
{{Changelog/header}}
 +
{{Changelog/item|0.8.0|Added shearing factors ''kx'' and ''ky''}}
 
== See Also ==
 
== See Also ==
 
* [[parent::love.graphics]]
 
* [[parent::love.graphics]]
 +
* [[love.graphics.draw]]
 
[[Category:Functions]]
 
[[Category:Functions]]
 
[[Sub-Category::Drawing| ]]
 
[[Sub-Category::Drawing| ]]
{{#set:Description=Draws objects on screen.}}
+
{{#set:Description=Draw a Quad with the specified Image on screen.}}
 
{{#set:Since=000}}
 
{{#set:Since=000}}
 
== Other Languages ==
 
== Other Languages ==
{{i18n|love.graphics.draw}}
+
{{i18n|love.graphics.drawq}}

Revision as of 06:37, 14 June 2013

Draw a Quad with the specified Image on screen.

Function

Synopsis

love.graphics.drawq( image, quad, x, y, r, sx, sy, ox, oy, kx, ky )

Arguments

Image image
An image to texture the quad with.
Quad quad
The quad to draw on screen.
number x
The position to draw the object (x-axis).
number y
The position to draw the object (y-axis).
number r (0)
Orientation (radians).
number sx (1)
Scale factor (x-axis).
number sy (sx)
Scale factor (y-axis).
number ox (0)
Origin offset (x-axis).
number oy (0)
Origin offset (y-axis).
Available since LÖVE 0.8.0
number kx (0)
Shearing factor (x-axis).
number ky (0)
Shearing factor (y-axis).

Returns

Nothing.

Function

Synopsis

love.graphics.drawq( canvas, quad, x, y, r, sx, sy, ox, oy, kx, ky )

Arguments

Canvas canvas
A canvas to texture the quad with.
Quad quad
The quad to draw on screen.
number x
The position to draw the object (x-axis).
number y
The position to draw the object (y-axis).
number r (0)
Orientation (radians).
number sx (1)
Scale factor (x-axis).
number sy (sx)
Scale factor (y-axis).
number ox (0)
Origin offset (x-axis).
number oy (0)
Origin offset (y-axis).
Available since LÖVE 0.8.0
number kx (0)
Shearing factor (x-axis).
number ky (0)
Shearing factor (y-axis).

Returns

Nothing.

Examples

Draw the top half of an image (the Hamster Ball) at 100 by 100 pixels.

image = love.graphics.newImage("hamster.png")
quad = love.graphics.newQuad(0, 0, 128, 64, image:getWidth(), image:getHeight())

function love.draw()
	love.graphics.drawq(image, quad, 100, 100)
end

Changelog

Version Description
0.8.0 Added shearing factors kx and ky

See Also


Other Languages