LoveExample-15~16 图片旋转

平面旋转,也即 xy 旋转,本人自创的词儿
效果就是向月亮环绕地球的旋转,只不过不自转

-- Example: Rotating images
angle = 0
function love.load()
    image = love.graphics.newImage("assets/love-ball.png")
end
function love.update(dt)
    angle = (angle + dt) % (2 * math.pi) --决定了图片的向心旋转
    x, y = 400 + math.cos(angle)*100, 300 + math.sin(angle)*100 --决定了图片位置的旋转
end
function love.draw()
--image:图片本身
--x,y:图片位置坐标
--angle:图片旋转角度,加上这个参数,会在指定位置上旋转图片指定角度
    love.graphics.draw(image, x, y,angle) 
end

love 本身的 API 还是很好理解的,问题是在于数学函数的运用,用什么样的函数做出什么样的运动轨迹,很考验数学水平了吧
真是个悲伤的故事……

z 旋转,也就是自转了,不知道这么说能懂不,不行自行运行代码看吧
(因为截图总是一帧,没有视觉残留造成的效果,录 GIF 又失帧严重,没办法了)

-- Example: Rotation and scaling
angle = 0
function love.load()
    image = love.graphics.newImage("assets/love-ball.png")
end
function love.update(dt)
    angle = angle + dt 
    x, y = 400 + math.cos(angle)*100, 300 + math.sin(angle)*100
end
function love.draw()
    local rot = angle*180/math.pi
    local sx = math.cos(angle)*3
    local sy = math.sin(angle)*2
	--与之前相比,多了四个参数
	--sx,sy:分别对应x、y坐标的缩放比例
	--32,32:x、y坐标原点偏移值
    love.graphics.draw(image, x, y, rot, sx, sy, 32, 32)
end

我没有完全闹明白这些参数的含义,比如为什么上一段代码图片是向运动轨迹中心旋转自身角度,而这一段似乎有所偏移,并且出现绕心旋转的现象
通过调整后面四个的参数产生了很多有趣的图案(有点像万花筒),不妨试试
通过这个函数,飞镖旋转什么的应该很容易做到了