Difference between revisions of "Shape"

From GiderosMobile
 
(17 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
'''Supported platforms:''' android, ios, mac, pc<br/>
+
<!-- GIDEROSOBJ:Shape -->
 +
'''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/>
 
'''Available since:''' Gideros 2011.6<br/>
 
'''Available since:''' Gideros 2011.6<br/>
 +
'''Inherits from:''' [[Sprite]]<br/>
 +
 
=== Description ===
 
=== Description ===
<translate><br />
+
The '''Shape''' class is used to create and display vector graphics.
The [[Shape]] class is used create and display vector graphics.<br />
+
 
<br /></translate>
 
 
=== Examples ===
 
=== Examples ===
'''Drawing red square'''<br/>
+
'''Drawing a red square'''
<source lang="lua">local shape = Shape.new()
+
<syntaxhighlight lang="lua">
 +
local shape = Shape.new()
 
shape:setFillStyle(Shape.SOLID, 0xff0000, 1)
 
shape:setFillStyle(Shape.SOLID, 0xff0000, 1)
 
shape:beginPath()
 
shape:beginPath()
Line 18: Line 21:
 
shape:endPath()
 
shape:endPath()
 
shape:setPosition(0, 150)
 
shape:setPosition(0, 150)
stage:addChild(shape)</source>
+
stage:addChild(shape)
 +
</syntaxhighlight>
 +
 
 +
'''Drawing a grid'''
 +
<syntaxhighlight lang="lua">
 +
application:setBackgroundColor(0xaaaaaa)
 +
 
 +
local g_tilesize = 256 -- 8
 +
local grid = Sprite.new()
 +
local steps = 16 -- 2
 +
for i = 1, g_tilesize + 1, steps do
 +
local line = Shape.new()
 +
if i == 1 or i == g_tilesize + 1 then -- outside borders
 +
line:setLineStyle(1, 0x0000ff, 1)
 +
else
 +
line:setLineStyle(1, 0x0000ff, 0.25)
 +
end
 +
line:beginPath()
 +
line:moveTo(i - 1.5, -0.5)
 +
line:lineTo(i - 1.5, g_tilesize - 0.5)
 +
line:endPath()
 +
grid:addChild(line)
 +
end
 +
for i = 1, g_tilesize + 1, steps do
 +
local line = Shape.new()
 +
if i == 1 or i == g_tilesize + 1 then -- outside borders
 +
line:setLineStyle(1, 0x0000ff, 1)
 +
else
 +
line:setLineStyle(1, 0x0000ff, 0.25)
 +
end
 +
line:beginPath()
 +
line:moveTo(-0.5, i-1.5)
 +
line:lineTo(g_tilesize - 0.5, i-1.5)
 +
line:endPath()
 +
grid:addChild(line)
 +
end
 +
 
 +
grid:setPosition(16, 16)
 +
stage:addChild(grid)
 +
</syntaxhighlight>
 +
 
 
{|-
 
{|-
| style="width: 50%;"|
+
| style="width: 50%; vertical-align:top;"|
 
=== Methods ===
 
=== Methods ===
[[Shape.new]] {{<translate>creates a new Shape object</translate>}}<br/>
+
[[Shape.new]] ''creates a new Shape object''<br/><!--GIDEROSMTD:Shape.new() creates a new Shape object-->
[[Shape:beginPath]] {{<translate>resets the current path</translate>}}<br/>
+
[[Shape:beginPath]] ''resets the current path''<br/><!--GIDEROSMTD:Shape:beginPath(winding) resets the current path-->
[[Shape:clear]] {{<translate>clears the graphics that were drawn to this Shape object, and resets fill and line style settings</translate>}}<br/>
+
[[Shape:clear]] ''clears the graphics that were drawn to this Shape object''<br/><!--GIDEROSMTD:Shape:clear() clears the graphics that were drawn to this Shape object, and resets fill and line style settings-->
[[Shape:closePath]] {{<translate>marks the current subpath as closed, and starts a new subpath with a point the same as the start and end of the newly closed subpath</translate>}}<br/>
+
[[Shape:closePath]] ''marks the current subpath as closed''<br/><!--GIDEROSMTD:Shape:closePath() marks the current subpath as closed, and starts a new subpath with a point the same as the start and end of the newly closed subpath-->
[[Shape:endPath]] {{<translate>ends the current path and draws the geometry by using the specified line and fill styles</translate>}}<br/>
+
[[Shape:endPath]] ''ends the current path''<br/><!--GIDEROSMTD:Shape:endPath() ends the current path and draws the geometry by using the specified line and fill styles-->
[[Shape:lineTo]] {{<translate>adds the given point to the current subpath, connected to the previous one by a straight line.</translate>}}<br/>
+
[[Shape:lineTo]] ''adds the given point to the current subpath, connected to the previous one by a straight line''<br/><!--GIDEROSMTD:Shape:lineTo(x,y) adds the given point to the current subpath, connected to the previous one by a straight line-->
[[Shape:moveTo]] {{<translate>creates a new subpath with the given point</translate>}}<br/>
+
[[Shape:moveTo]] ''creates a new subpath with the given point''<br/><!--GIDEROSMTD:Shape:moveTo(x,y) creates a new subpath with the given point-->
[[Shape:setFillStyle]] {{<translate>sets the fill style that Shape object uses for subsequent drawings</translate>}}<br/>
+
[[Shape:setFillStyle]] ''sets the fill style that Shape object uses for subsequent drawings''<br/><!--GIDEROSMTD:Shape:setFillStyle(type,...) sets the fill style that Shape object uses for subsequent drawings-->
[[Shape:setLineStyle]] {{<translate>sets the line style that Shape object uses for subsequent drawings</translate>}}<br/>
+
[[Shape:setLineStyle]] ''sets the line style that Shape object uses for subsequent drawings''<br/><!--GIDEROSMTD:Shape:setLineStyle(width,color,alpha) sets the line style that Shape object uses for subsequent drawings-->
| style="width: 50%;"|
+
 
 +
| style="width: 50%; vertical-align:top;"|
 
=== Events ===
 
=== Events ===
 
=== Constants ===
 
=== Constants ===
[[Shape.EVEN_ODD]]<br/>
+
[[Shape.EVEN_ODD]]<br/><!--GIDEROSCST:Shape.EVEN_ODD evenOdd-->
[[Shape.NONE]]<br/>
+
[[Shape.NONE]]<br/><!--GIDEROSCST:Shape.NONE none-->
[[Shape.NON_ZERO]]<br/>
+
[[Shape.NON_ZERO]]<br/><!--GIDEROSCST:Shape.NON_ZERO nonZero-->
[[Shape.SOLID]]<br/>
+
[[Shape.SOLID]]<br/><!--GIDEROSCST:Shape.SOLID solid-->
[[Shape.TEXTURE]]<br/>
+
[[Shape.TEXTURE]]<br/><!--GIDEROSCST:Shape.TEXTURE texture-->
 
|}
 
|}
 +
 +
{{GIDEROS IMPORTANT LINKS}}

Latest revision as of 02:15, 25 December 2024

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.png
Available since: Gideros 2011.6
Inherits from: Sprite

Description

The Shape class is used to create and display vector graphics.

Examples

Drawing a red square

local shape = Shape.new()
shape:setFillStyle(Shape.SOLID, 0xff0000, 1)
shape:beginPath()
shape:moveTo(0,0)
shape:lineTo(100, 0)
shape:lineTo(100, 100)
shape:lineTo(0, 100)
shape:lineTo(0, 0)
shape:endPath()
shape:setPosition(0, 150)
stage:addChild(shape)

Drawing a grid

application:setBackgroundColor(0xaaaaaa)

local g_tilesize = 256 -- 8
local grid = Sprite.new()
local steps = 16 -- 2
for i = 1, g_tilesize + 1, steps do
	local line = Shape.new()
	if i == 1 or i == g_tilesize + 1 then -- outside borders
		line:setLineStyle(1, 0x0000ff, 1)
	else
		line:setLineStyle(1, 0x0000ff, 0.25)
	end
	line:beginPath()
	line:moveTo(i - 1.5, -0.5)
	line:lineTo(i - 1.5, g_tilesize - 0.5)
	line:endPath()
	grid:addChild(line)
end
for i = 1, g_tilesize + 1, steps do
	local line = Shape.new()
	if i == 1 or i == g_tilesize + 1 then -- outside borders
		line:setLineStyle(1, 0x0000ff, 1)
	else
		line:setLineStyle(1, 0x0000ff, 0.25)
	end
	line:beginPath()
	line:moveTo(-0.5, i-1.5)
	line:lineTo(g_tilesize - 0.5, i-1.5)
	line:endPath()
	grid:addChild(line)
end

grid:setPosition(16, 16)
stage:addChild(grid)

Methods

Shape.new creates a new Shape object
Shape:beginPath resets the current path
Shape:clear clears the graphics that were drawn to this Shape object
Shape:closePath marks the current subpath as closed
Shape:endPath ends the current path
Shape:lineTo adds the given point to the current subpath, connected to the previous one by a straight line
Shape:moveTo creates a new subpath with the given point
Shape:setFillStyle sets the fill style that Shape object uses for subsequent drawings
Shape:setLineStyle sets the line style that Shape object uses for subsequent drawings

Events

Constants

Shape.EVEN_ODD
Shape.NONE
Shape.NON_ZERO
Shape.SOLID
Shape.TEXTURE