1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
| function paintPoly(poly, xoffset, yoffset, rgba)
n = #poly
miny = poly[1].y
maxy = poly[1].y
for i = 2, n do
miny = math.min(miny, poly[i].y)
maxy = math.max(maxy, poly[i].y)
end
for y = miny, maxy do
ints = {}
int = 0
last = n
for i = 1, n do
y1 = poly[last].y
y2 = poly[i].y
if y1 < y2 then
x1 = poly[last].x
x2 = poly[i].x
if (y >= y1) and (y < y2) then
int = int + 1
ints[int] = math.floor((y-y1) * (x2-x1) / (y2-y1) + x1)
end
elseif y1 > y2 then
x1 = poly[last].x
x2 = poly[i].x
if (y >= y2) and (y < y1) then
int = int + 1
ints[int] = math.floor((y-y2) * (x1-x2) / (y1-y2) + x2)
end
end
last = i
end
---[[
i = 1
while i < int do
line = display.newLine(ints[i] + xoffset, y + yoffset, ints[i+1] + xoffset, y + yoffset)
line:setColor( rgba[1], rgba[2], rgba[3], rgba[4] )
i = i + 2
end
--]]
end
end
colors = { {128,255,255,255}, {255,128,255,255}, {255,255,255,255}}
myStar = {
{x=0,y=-110},
{x=27,y=-35},
{x=105,y=-35},
{x=43,y=16},
{x=65,y=90},
{x=0,y=45},
{x=-65,y=90},
{x=-43,y=15},
{x=-105,y=-35},
{x=-27,y=-35},
{x=0,y=-110},
}
myRectangle = {
{x=40,y=100},
{x=180,y=100},
{x=180,y=50},
{x=40,y=50},
}
paintPoly(myStar, 160, 240, colors[1])
paintPoly(myStar, 180, 260, colors[2])
paintPoly(myRectangle, 0, 0, colors[3]) |