Difference between revisions of "love.graphics.line"
m (1 revision: Importing from potato (again).) |
|||
(15 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
− | + | Draws lines between points. | |
− | Draws | ||
== Function == | == Function == | ||
=== Synopsis === | === Synopsis === | ||
<source lang="lua"> | <source lang="lua"> | ||
− | love.graphics.line( x1, y1, x2, y2 ) | + | love.graphics.line( x1, y1, x2, y2, ... ) |
</source> | </source> | ||
=== Arguments === | === Arguments === | ||
Line 11: | Line 10: | ||
{{param|number|x2|The position of second point on the x-axis.}} | {{param|number|x2|The position of second point on the x-axis.}} | ||
{{param|number|y2|The position of second point on the y-axis.}} | {{param|number|y2|The position of second point on the y-axis.}} | ||
+ | {{param|number|...|You can continue passing point positions to draw a polyline.}} | ||
=== Returns === | === Returns === | ||
Nothing. | Nothing. | ||
+ | == Function == | ||
+ | === Synopsis === | ||
+ | <source lang="lua"> | ||
+ | love.graphics.line( points ) | ||
+ | </source> | ||
+ | === Arguments === | ||
+ | {{param|table|points|A table of point positions, as described above.}} | ||
+ | === Returns === | ||
+ | Nothing. | ||
+ | == Examples == | ||
+ | |||
+ | === Draw the outline of a simple trapezoid === | ||
+ | <source lang="lua"> | ||
+ | function love.draw() | ||
+ | love.graphics.line(200,50, 400,50, 500,300, 100,300, 200,50) -- last pair is a repeat to complete the trapezoid | ||
+ | end | ||
+ | </source> | ||
+ | |||
+ | === Draw a line from the center of the screen to the mouse pointer === | ||
+ | <source lang="lua"> | ||
+ | function love.draw() | ||
+ | local mx, my = love.mouse.getPosition() | ||
+ | |||
+ | local windowWidth, windowHeight = love.graphics.getDimensions() | ||
+ | |||
+ | love.graphics.line(windowWidth/2, windowHeight/2, mx, my) | ||
+ | end | ||
+ | </source> | ||
+ | |||
+ | === Draw a zigzag line using a table === | ||
+ | <source lang="lua"> | ||
+ | local zigzagLine = {100,100, 200,200, 300,100, 400,200} | ||
+ | |||
+ | function love.draw() | ||
+ | love.graphics.line(zigzagLine) | ||
+ | end | ||
+ | </source> | ||
+ | |||
+ | === Generate and draw a grid === | ||
+ | <source lang="lua"> | ||
+ | local cellSize = 30 -- Width and height of cells. | ||
+ | local gridLines = {} | ||
+ | |||
+ | local windowWidth, windowHeight = love.graphics.getDimensions() | ||
+ | |||
+ | -- Vertical lines. | ||
+ | for x = cellSize, windowWidth, cellSize do | ||
+ | local line = {x, 0, x, windowHeight} | ||
+ | table.insert(gridLines, line) | ||
+ | end | ||
+ | -- Horizontal lines. | ||
+ | for y = cellSize, windowHeight, cellSize do | ||
+ | local line = {0, y, windowWidth, y} | ||
+ | table.insert(gridLines, line) | ||
+ | end | ||
+ | |||
+ | function love.draw() | ||
+ | love.graphics.setLineWidth(2) | ||
+ | |||
+ | for i, line in ipairs(gridLines) do | ||
+ | love.graphics.line(line) | ||
+ | end | ||
+ | end | ||
+ | </source> | ||
+ | |||
+ | |||
+ | === Draw temp line with mouse === | ||
+ | |||
+ | <source lang="lua"> | ||
+ | tempLine = {} | ||
+ | |||
+ | |||
+ | local function drawLine (line) | ||
+ | |||
+ | end | ||
+ | |||
+ | function love.draw() | ||
+ | -- check if line has 4 coordinates: | ||
+ | if #tempLine > 3 then | ||
+ | love.graphics.line (tempLine) | ||
+ | end | ||
+ | end | ||
+ | |||
+ | function love.mousepressed(x, y) | ||
+ | -- set first point: | ||
+ | tempLine = {x, y} | ||
+ | end | ||
+ | |||
+ | function love.mousemoved (x, y) | ||
+ | -- update second point: | ||
+ | tempLine[3] = x | ||
+ | tempLine[4] = y | ||
+ | end | ||
+ | |||
+ | function love.mousereleased ( x, y) | ||
+ | -- get your temp line coordinates as: | ||
+ | -- local x1, y1 = tempLine[1], tempLine[2] | ||
+ | -- local x2, y2 = tempLine[3], tempLine[4] | ||
+ | |||
+ | -- clean temp line: | ||
+ | tempLine = {} | ||
+ | end | ||
+ | |||
+ | </source> | ||
+ | |||
== See Also == | == See Also == | ||
* [[parent::love.graphics]] | * [[parent::love.graphics]] | ||
+ | * [[love.graphics.setLineWidth]] | ||
+ | * [[love.graphics.setLineStyle]] | ||
[[Category:Functions]] | [[Category:Functions]] | ||
− | {{#set:Description=Draws | + | [[Sub-Category::Drawing| ]] |
+ | {{#set:Description=Draws lines between points.}} | ||
+ | {{#set:Since=000}} | ||
+ | |||
+ | == Other Languages == | ||
+ | {{i18n|love.graphics.line}} |
Latest revision as of 08:19, 21 July 2023
Draws lines between points.
Function
Synopsis
love.graphics.line( x1, y1, x2, y2, ... )
Arguments
number x1
- The position of first point on the x-axis.
number y1
- The position of first point on the y-axis.
number x2
- The position of second point on the x-axis.
number y2
- The position of second point on the y-axis.
number ...
- You can continue passing point positions to draw a polyline.
Returns
Nothing.
Function
Synopsis
love.graphics.line( points )
Arguments
table points
- A table of point positions, as described above.
Returns
Nothing.
Examples
Draw the outline of a simple trapezoid
function love.draw()
love.graphics.line(200,50, 400,50, 500,300, 100,300, 200,50) -- last pair is a repeat to complete the trapezoid
end
Draw a line from the center of the screen to the mouse pointer
function love.draw()
local mx, my = love.mouse.getPosition()
local windowWidth, windowHeight = love.graphics.getDimensions()
love.graphics.line(windowWidth/2, windowHeight/2, mx, my)
end
Draw a zigzag line using a table
local zigzagLine = {100,100, 200,200, 300,100, 400,200}
function love.draw()
love.graphics.line(zigzagLine)
end
Generate and draw a grid
local cellSize = 30 -- Width and height of cells.
local gridLines = {}
local windowWidth, windowHeight = love.graphics.getDimensions()
-- Vertical lines.
for x = cellSize, windowWidth, cellSize do
local line = {x, 0, x, windowHeight}
table.insert(gridLines, line)
end
-- Horizontal lines.
for y = cellSize, windowHeight, cellSize do
local line = {0, y, windowWidth, y}
table.insert(gridLines, line)
end
function love.draw()
love.graphics.setLineWidth(2)
for i, line in ipairs(gridLines) do
love.graphics.line(line)
end
end
Draw temp line with mouse
tempLine = {}
local function drawLine (line)
end
function love.draw()
-- check if line has 4 coordinates:
if #tempLine > 3 then
love.graphics.line (tempLine)
end
end
function love.mousepressed(x, y)
-- set first point:
tempLine = {x, y}
end
function love.mousemoved (x, y)
-- update second point:
tempLine[3] = x
tempLine[4] = y
end
function love.mousereleased ( x, y)
-- get your temp line coordinates as:
-- local x1, y1 = tempLine[1], tempLine[2]
-- local x2, y2 = tempLine[3], tempLine[4]
-- clean temp line:
tempLine = {}
end
See Also
Other Languages
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info