Difference between revisions of "love.graphics.rotate (简体中文)"

(Fixed parent)
 
Line 41: Line 41:
  
 
== See Also ==
 
== See Also ==
* [[parent::love.graphics]]
+
* [[parent::love.graphics (简体中文)]]
 
* [[love.graphics.pop]]
 
* [[love.graphics.pop]]
 
* [[love.graphics.push]]
 
* [[love.graphics.push]]

Latest revision as of 04:22, 18 September 2015

本函数的功能是在二维平面上进行坐标旋转。

Calling this function affects all future drawing operations by rotating the coordinate system around the origin by the given amount of radians. This change lasts until love.draw() exits.

Function

Synopsis

love.graphics.rotate( angle )

Arguments

number angle
The amount to rotate the coordinate system in radians.

Returns

Nothing.

Examples

Rotating a static scene

This example shows how to rotate a static scene around a given point. Since the rotation is always around the origin, translating the center of the screen to the origin and back around the rotate operation makes the effective rotation point be the center of the screen. This is demonstrated by drawing a rectangle that shows the rotation and a point that is right in the center and thus does not move when the scene rotates. Note that the drawing commands have coordinates that depend solely on the screen size.

local angle = 0

function love.draw()
	local width = love.graphics.getWidth()
	local height = love.graphics.getHeight()
	-- rotate around the center of the screen by angle radians
	love.graphics.translate(width/2, height/2)
	love.graphics.rotate(angle)
	love.graphics.translate(-width/2, -height/2)
	-- draw a white rectangle slightly off center
	love.graphics.setColor(0xff, 0xff, 0xff)
	love.graphics.rectangle('fill', width/2-100, height/2-100, 300, 400)
	-- draw a five-pixel-wide blue point at the center
	love.graphics.setPointSize(5)
	love.graphics.setColor(0, 0, 0xff)
	love.graphics.point(width/2, height/2)
end

function love.update(dt)
	love.timer.sleep(.01)
	angle = angle + dt * math.pi/2
	angle = angle % (2*math.pi)
end

See Also


Other Languages