love2d draw 设置原点
时间: 2023-07-04 13:22:10 浏览: 59
在love2d中,可以使用love.graphics.translate函数来设置绘制的原点。translate函数接受两个参数,分别是x轴和y轴上的偏移量。调用translate函数后,所有后续的绘制操作都会以新的原点为基准进行绘制。例如,以下代码将绘制原点设置为屏幕中心:
```
function love.draw()
local centerX, centerY = love.graphics.getWidth()/2, love.graphics.getHeight()/2
love.graphics.translate(centerX, centerY)
love.graphics.rectangle("fill", -50, -50, 100, 100)
end
```
在这个例子中,我们首先计算了屏幕中心的坐标,并将其作为translate函数的参数。然后我们绘制一个宽高均为100的矩形,其左上角坐标为(-50,-50),这里的坐标是相对于新的原点而言的。由于我们使用了translate函数,因此矩形的实际绘制位置是屏幕中心。
相关问题
love2d draw 绘制图片 设置原点
在love2d中,可以使用love.graphics.draw函数来绘制图片。如果你想在绘制图片的时候设置原点,可以先使用love.graphics.translate函数将原点移动到所需位置,然后再调用love.graphics.draw函数绘制图片。例如,以下代码将绘制原点设置为图片中心:
```
function love.draw()
local img = love.graphics.newImage("example.png")
local centerX, centerY = love.graphics.getWidth()/2, love.graphics.getHeight()/2
local imgWidth, imgHeight = img:getDimensions()
local imgCenterX, imgCenterY = imgWidth/2, imgHeight/2
love.graphics.translate(centerX, centerY)
love.graphics.draw(img, -imgCenterX, -imgCenterY)
end
```
在这个例子中,我们首先加载了一张名为"example.png"的图片,并获取了其宽高以及中心点的坐标。然后我们计算出屏幕中心的坐标,并使用translate函数将画布的原点移动到该位置。最后,我们调用love.graphics.draw函数绘制图片,将其左上角的坐标设置为(-imgCenterX,-imgCenterY),这样图片的中心就与画布的原点重合了。这样,图片就能以中心为基准进行绘制了。
love2d draw 原点位置
在 Love2D 中,绘制图形的原点位置默认是左上角,坐标系的 X 轴向右,Y 轴向下。可以使用 `love.graphics.origin()` 函数将坐标系原点设置回默认位置。
如果需要修改坐标系原点的位置,可以使用 `love.graphics.translate()` 函数将坐标系平移。该函数需要传入两个参数,分别是 X 轴和 Y 轴的偏移量,用来指定坐标系原点的新位置。
以下是一个示例代码,将坐标系原点向右下平移了 100 个像素:
```lua
function love.draw()
-- 绘制一个红色矩形,左上角位置为 (100, 100)
love.graphics.setColor(1, 0, 0)
love.graphics.rectangle("fill", 100, 100, 50, 50)
-- 平移坐标系原点
love.graphics.translate(100, 100)
-- 绘制一个蓝色矩形,左上角位置为 (0, 0)
love.graphics.setColor(0, 0, 1)
love.graphics.rectangle("fill", 0, 0, 50, 50)
-- 恢复坐标系原点位置
love.graphics.origin()
end
```
以上代码中,先绘制了一个红色矩形,左上角位置为 (100, 100)。然后使用 `love.graphics.translate(100, 100)` 函数将坐标系原点向右下平移了 100 个像素。接着绘制了一个蓝色矩形,左上角位置为 (0, 0),这里的坐标是相对于新的坐标系原点的。最后使用 `love.graphics.origin()` 函数将坐标系原点位置恢复为默认位置。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)