This commit is contained in:
Bartosz Kościów 2017-05-29 19:41:17 +02:00
parent 59e581a58d
commit 950bc8f560
4 changed files with 84 additions and 24 deletions

View File

@ -1,6 +1,9 @@
0.5.0
- tests
- fix page drawing
0.4.0
- ILI9486, XPT2046
- rotation
- ILI9486, XPT2046
- rotation
0.2.1
- CS & LED pin do ILI drv
0.2.0

View File

@ -23,18 +23,23 @@ class Page(Pixel, metaclass=abc.ABCMeta):
steps = [length for _ in range(0, step)]
if step * length < required_length:
offset = len(steps) // 2
rest = required_length - step * length
steps_even = True if len(steps) & 1 == 0 else False
rest_even = True if rest & 1 == 0 else False
appendix = 0
for idx in range(0, required_length - step * length):
for idx in range(0, rest):
steps[offset + appendix] += 1
if steps_even:
appendix = self._calculate_appendix(appendix)
elif idx > 0:
elif idx > 0 and rest_even:
appendix = self._calculate_appendix(appendix)
elif not rest_even:
appendix = self._calculate_appendix(appendix)
return steps
def _calculate_appendix(self, appendix):
"""calculate appendix during drawing a line"""
if appendix == 0:
appendix = -1
elif appendix < 0:
@ -67,8 +72,6 @@ class Page(Pixel, metaclass=abc.ABCMeta):
step = height + 1
length = width // step
steps = self._calculate_steps(length, step, width)
print("width ", width, " heught ", height)
print("steps", steps)
else:
height += 1
if pos_y2 < pos_y1:
@ -80,8 +83,6 @@ class Page(Pixel, metaclass=abc.ABCMeta):
step = width + 1
length = height // step
steps = self._calculate_steps(length, step, height)
print("length ", length, " heught ", height)
print("steps", steps)
delta_y = 0
delta_x = 0
for idx, step in enumerate(steps):

View File

@ -1,6 +0,0 @@
from nose.tools import assert_equal
class DummyTest(object):
def test_init(self):
assert_equal(1, 1)

View File

@ -89,7 +89,6 @@ class TestPageDrawing(object):
buffer[7][0] = 2
buffer[8][0] = 2
buffer[9][0] = 2
self.draw_buffer(self.lcd.buffer)
assert_equal(self.lcd.buffer, buffer)
def test_draw_diagonal_line_even_steps(self):
@ -105,11 +104,10 @@ class TestPageDrawing(object):
buffer[7][1] = 16+32
buffer[8][1] = 64
buffer[9][1] = 128
self.draw_buffer(self.lcd.buffer)
assert_equal(self.lcd.buffer, buffer)
def test_draw_diagonal_line_odd_steps_even_rest(self):
def test_draw_diagonal_line_even_steps_even_rest(self):
self.lcd.draw_line(0, 0, 9, 5)
buffer = self.get_buffer()
buffer[0][0] = 1
@ -123,23 +121,87 @@ class TestPageDrawing(object):
buffer[8][0] = 16
buffer[9][0] = 32
self.draw_buffer(self.lcd.buffer)
assert_equal(self.lcd.buffer, buffer)
def test_draw_diagonal_line_odd_steps_odd_rest(self):
def test_draw_diagonal_line_odd_steps_even_rest(self):
self.lcd.draw_line(0, 0, 9, 6)
buffer = self.get_buffer()
buffer[0][0] = 1
buffer[1][0] = 2
buffer[2][0] = 2
buffer[2][0] = 4
buffer[3][0] = 4
buffer[4][0] = 4
buffer[4][0] = 8
buffer[5][0] = 8
buffer[6][0] = 8
buffer[6][0] = 16
buffer[7][0] = 16
buffer[8][0] = 16
buffer[9][0] = 32
buffer[8][0] = 32
buffer[9][0] = 64
assert_equal(self.lcd.buffer, buffer)
def test_draw_diagonal_line_even_steps_odd_rest(self):
self.lcd.draw_line(0, 0, 9, 6)
buffer = self.get_buffer()
buffer[0][0] = 1
buffer[1][0] = 2
buffer[2][0] = 4
buffer[3][0] = 4
buffer[4][0] = 8
buffer[5][0] = 8
buffer[6][0] = 16
buffer[7][0] = 16
buffer[8][0] = 32
buffer[9][0] = 64
assert_equal(self.lcd.buffer, buffer)
def test_fill_rect(self):
self.lcd.fill_rect(2, 2, 7, 11)
buffer = self.get_buffer()
buffer[2][0] = 4+8+16+32+64+128
buffer[3][0] = 4+8+16+32+64+128
buffer[4][0] = 4+8+16+32+64+128
buffer[5][0] = 4+8+16+32+64+128
buffer[6][0] = 4+8+16+32+64+128
buffer[7][0] = 4+8+16+32+64+128
buffer[2][1] = 1+2+4+8
buffer[3][1] = 1+2+4+8
buffer[4][1] = 1+2+4+8
buffer[5][1] = 1+2+4+8
buffer[6][1] = 1+2+4+8
buffer[7][1] = 1+2+4+8
assert_equal(self.lcd.buffer, buffer)
def test_draw_circle(self):
self.lcd.draw_circle(5, 8, 3)
buffer = self.get_buffer()
buffer[2][0] = 128
buffer[3][0] = 64+128
buffer[4][0] = 32+64
buffer[5][0] = 32
buffer[6][0] = 32+64
buffer[7][0] = 64+128
buffer[8][0] = 128
buffer[2][1] = 1+2
buffer[3][1] = 2+4
buffer[4][1] = 4+8
buffer[5][1] = 8
buffer[6][1] = 4+8
buffer[7][1] = 2+4
buffer[8][1] = 1+2
assert_equal(self.lcd.buffer, buffer)
def test_draw_arc(self):
self.lcd.draw_arc(5, 8, 3, 90, 270)
buffer = self.get_buffer()
buffer[2][0] = 128
buffer[3][0] = 64+128
buffer[4][0] = 32+64
buffer[5][0] = 32
buffer[2][1] = 1+2
buffer[3][1] = 2+4
buffer[4][1] = 4+8
buffer[5][1] = 8
self.draw_buffer(self.lcd.buffer)
assert_equal(self.lcd.buffer, buffer)