RoundedRectangle: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
.WhiteBlue (talk | contribs) m (Added Code 2) |
||
Line 5: | Line 5: | ||
==Syntax== | ==Syntax== | ||
<syntaxhighlight lang="lua">nil dxDrawRoundedRectangle(x, y, width, height, radius, color, postGUI, subPixelPositioning)</syntaxhighlight> | <syntaxhighlight lang="lua">nil dxDrawRoundedRectangle(x, y, width, height, radius, color, align, postGUI, subPixelPositioning)</syntaxhighlight> | ||
==Example== | ==Example== | ||
Line 30: | Line 30: | ||
</section> | </section> | ||
==Code== | ==Code 1== | ||
<section name="Client side" class="client" show="true"> | <section name="Client side" class="client" show="true"> | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
Line 43: | Line 43: | ||
dxDrawRectangle(x+width-radius, y+radius, radius, height-(radius*2), color, postGUI, subPixelPositioning) | dxDrawRectangle(x+width-radius, y+radius, radius, height-(radius*2), color, postGUI, subPixelPositioning) | ||
dxDrawRectangle(x+radius, y, width-(radius*2), radius, color, postGUI, subPixelPositioning) | dxDrawRectangle(x+radius, y, width-(radius*2), radius, color, postGUI, subPixelPositioning) | ||
end | |||
</syntaxhighlight> | |||
</section> | |||
==Code 2== | |||
==Syntax== | |||
<syntaxhighlight lang="lua">nil dxDrawRoundedRectangle(x, y, w, h, radius = 10, color = tocolor(255, 255, 255, 255), align = 'full', postGUI = false, subPixelPositioning = false)</syntaxhighlight> | |||
==Example== | |||
<section name="Client side" class="client" show="true"> | |||
<syntaxhighlight lang="lua"> | |||
local data = {} | |||
data.resolution = {} | |||
data.resolution.x, data.resolution.y = guiGetScreenSize() | |||
data.mainRect = {} | |||
data.mainRect.width = 300 | |||
data.mainRect.height = 500 | |||
dxDrawRoundedRectangle( | |||
data.resolution.x-data.mainRect.width, | |||
data.resolution.y-data.mainRect.height, | |||
data.mainRect.width, | |||
data.mainRect.height, | |||
10, | |||
0xffffffff, | |||
'top', | |||
false, | |||
false | |||
) | |||
</syntaxhighlight> | |||
</section> | |||
==Code== | |||
<section name="Client side" class="client" show="true"> | |||
<syntaxhighlight lang="lua"> | |||
function dxDrawRoundedRectangle(x, y, w, h, radius, color, align, postGUI) | |||
if not x or not y or not w or not h then return end | |||
local radius = radius or 10 | |||
local color = color or tocolor(255, 255, 255, 255) | |||
local align = align or 'full' | |||
if w < radius then | |||
w = 0 | |||
radius = 0 | |||
elseif h < radius then | |||
h = 0 | |||
radius = 0 | |||
end | |||
if align == 'full' or align == 'top' or align == 'right' or align == 'left' then | |||
if align == 'right' then | |||
dxDrawRectangle(x, y, w - radius, radius, color, postGUI) | |||
dxDrawCircle((x+w)-radius, y+radius, radius, 270, 360, color, color, 16, 1, postGUI) | |||
elseif align == 'left' then | |||
dxDrawRectangle(x + radius, y, w - radius, radius, color, postGUI) | |||
dxDrawCircle(x+radius, y+radius, radius, 180, 270, color, color, 16, 1, postGUI) | |||
else | |||
dxDrawRectangle(x + radius, y, w - (radius * 2), radius, color, postGUI) | |||
dxDrawCircle(x+radius, y+radius, radius, 180, 270, color, color, 16, 1, postGUI) | |||
dxDrawCircle((x+w)-radius, y+radius, radius, 270, 360, color, color, 16, 1, postGUI) | |||
end | |||
if align == 'top' or align == 'right' or align == 'left' then | |||
dxDrawRectangle(x, y + radius, w, h - (radius * 2), color, postGUI) | |||
end | |||
end | |||
if align == 'full' or align == 'bottom' or align == 'right' or align == 'left' then | |||
if align == 'right' then | |||
dxDrawRectangle(x, y + h - radius, w - radius, radius, color, postGUI) | |||
dxDrawCircle((x+w)-radius, (y+h)-radius, radius, 0, 90, color, color, 16, 1, postGUI) | |||
elseif align == 'left' then | |||
dxDrawRectangle(x + radius, y + h - radius, w - radius, radius, color, postGUI) | |||
dxDrawCircle(x+radius, (y+h)-radius, radius, 90, 180, color, color, 16, 1, postGUI) | |||
else | |||
dxDrawRectangle(x + radius, y + h - radius, w - (radius * 2), radius, color, postGUI) | |||
dxDrawCircle(x+radius, (y+h)-radius, radius, 90, 180, color, color, 16, 1, postGUI) | |||
dxDrawCircle((x+w)-radius, (y+h)-radius, radius, 0, 90, color, color, 16, 1, postGUI) | |||
end | |||
if align == 'bottom' or align == 'right' or align == 'left' then | |||
dxDrawRectangle(x, y + radius, w, h - (radius * 2), color, postGUI) | |||
end | |||
end | |||
if align == 'full' then | |||
dxDrawRectangle(x, y + radius, w, h - (radius * 2), color, postGUI) | |||
end | |||
end | end | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 50: | Line 143: | ||
Rewritten by [[User:Woovie]] | Rewritten by [[User:Woovie]] | ||
Code 2 by [[User:.WhiteBlue]] |
Revision as of 15:15, 13 August 2023
This function draws a rounded corner rectangle.
Syntax
nil dxDrawRoundedRectangle(x, y, width, height, radius, color, align, postGUI, subPixelPositioning)
Example
Click to collapse [-]
Client sidelocal data = {} data.resolution = {} data.resolution.x, data.resolution.y = guiGetScreenSize() data.mainRect = {} data.mainRect.width = 300 data.mainRect.height = 500 dxDrawRoundedRectangle( data.resolution.x-data.mainRect.width, data.resolution.y-data.mainRect.height, data.mainRect.width, data.mainRect.height, 10, 0xffffffff, false, false )
Code 1
Click to collapse [-]
Client sidefunction dxDrawRoundedRectangle(x, y, width, height, radius, color, postGUI, subPixelPositioning) dxDrawRectangle(x+radius, y+radius, width-(radius*2), height-(radius*2), color, postGUI, subPixelPositioning) dxDrawCircle(x+radius, y+radius, radius, 180, 270, color, color, 16, 1, postGUI) dxDrawCircle(x+radius, (y+height)-radius, radius, 90, 180, color, color, 16, 1, postGUI) dxDrawCircle((x+width)-radius, (y+height)-radius, radius, 0, 90, color, color, 16, 1, postGUI) dxDrawCircle((x+width)-radius, y+radius, radius, 270, 360, color, color, 16, 1, postGUI) dxDrawRectangle(x, y+radius, radius, height-(radius*2), color, postGUI, subPixelPositioning) dxDrawRectangle(x+radius, y+height-radius, width-(radius*2), radius, color, postGUI, subPixelPositioning) dxDrawRectangle(x+width-radius, y+radius, radius, height-(radius*2), color, postGUI, subPixelPositioning) dxDrawRectangle(x+radius, y, width-(radius*2), radius, color, postGUI, subPixelPositioning) end
Code 2
Syntax
nil dxDrawRoundedRectangle(x, y, w, h, radius = 10, color = tocolor(255, 255, 255, 255), align = 'full', postGUI = false, subPixelPositioning = false)
Example
Click to collapse [-]
Client sidelocal data = {} data.resolution = {} data.resolution.x, data.resolution.y = guiGetScreenSize() data.mainRect = {} data.mainRect.width = 300 data.mainRect.height = 500 dxDrawRoundedRectangle( data.resolution.x-data.mainRect.width, data.resolution.y-data.mainRect.height, data.mainRect.width, data.mainRect.height, 10, 0xffffffff, 'top', false, false )
Code
Click to collapse [-]
Client sidefunction dxDrawRoundedRectangle(x, y, w, h, radius, color, align, postGUI) if not x or not y or not w or not h then return end local radius = radius or 10 local color = color or tocolor(255, 255, 255, 255) local align = align or 'full' if w < radius then w = 0 radius = 0 elseif h < radius then h = 0 radius = 0 end if align == 'full' or align == 'top' or align == 'right' or align == 'left' then if align == 'right' then dxDrawRectangle(x, y, w - radius, radius, color, postGUI) dxDrawCircle((x+w)-radius, y+radius, radius, 270, 360, color, color, 16, 1, postGUI) elseif align == 'left' then dxDrawRectangle(x + radius, y, w - radius, radius, color, postGUI) dxDrawCircle(x+radius, y+radius, radius, 180, 270, color, color, 16, 1, postGUI) else dxDrawRectangle(x + radius, y, w - (radius * 2), radius, color, postGUI) dxDrawCircle(x+radius, y+radius, radius, 180, 270, color, color, 16, 1, postGUI) dxDrawCircle((x+w)-radius, y+radius, radius, 270, 360, color, color, 16, 1, postGUI) end if align == 'top' or align == 'right' or align == 'left' then dxDrawRectangle(x, y + radius, w, h - (radius * 2), color, postGUI) end end if align == 'full' or align == 'bottom' or align == 'right' or align == 'left' then if align == 'right' then dxDrawRectangle(x, y + h - radius, w - radius, radius, color, postGUI) dxDrawCircle((x+w)-radius, (y+h)-radius, radius, 0, 90, color, color, 16, 1, postGUI) elseif align == 'left' then dxDrawRectangle(x + radius, y + h - radius, w - radius, radius, color, postGUI) dxDrawCircle(x+radius, (y+h)-radius, radius, 90, 180, color, color, 16, 1, postGUI) else dxDrawRectangle(x + radius, y + h - radius, w - (radius * 2), radius, color, postGUI) dxDrawCircle(x+radius, (y+h)-radius, radius, 90, 180, color, color, 16, 1, postGUI) dxDrawCircle((x+w)-radius, (y+h)-radius, radius, 0, 90, color, color, 16, 1, postGUI) end if align == 'bottom' or align == 'right' or align == 'left' then dxDrawRectangle(x, y + radius, w, h - (radius * 2), color, postGUI) end end if align == 'full' then dxDrawRectangle(x, y + radius, w, h - (radius * 2), color, postGUI) end end
Original by User:Extasy
Rewritten by User:Woovie
Code 2 by User:.WhiteBlue