From 45eff5c4fa006b855bfe8d9671ce06ae90363606 Mon Sep 17 00:00:00 2001 From: jposada202020 Date: Wed, 21 Apr 2021 15:24:03 -0400 Subject: [PATCH] New example using setter feature in the circle library --- docs/examples.rst | 45 ++++++++++++++++ examples/display_shapes_circle_animation.py | 60 +++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 examples/display_shapes_circle_animation.py diff --git a/docs/examples.rst b/docs/examples.rst index 3d63f26..50e01b1 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -6,3 +6,48 @@ Ensure your device works with this simple test. .. literalinclude:: ../examples/display_shapes_simpletest.py :caption: examples/display_shapes_simpletest.py :linenos: + +Simple test MagTag +------------------ + +Simple test with the MagTag. + +.. literalinclude:: ../examples/display_shapes_simpletest_magtag.py + :caption: examples/display_shapes_simpletest_magtag.py + :linenos: + +Sparkline Simple Test +--------------------- + +Simple test with Sparklines + +.. literalinclude:: ../examples/display_shapes_sparkline_simpletest.py + :caption: examples/display_shapes_sparkline_simpletest.py + :linenos: + +Sparkline Ticks Example +----------------------- + +Example using tick with the Sparkline class + +.. literalinclude:: ../examples/display_shapes_sparkline_ticks.py + :caption: examples/display_shapes_sparkline_ticks.py + :linenos: + +Sparkline Triple Test +--------------------- + +reate background bitmaps and sparklines + +.. literalinclude:: ../examples/display_shapes_sparkline_triple.py + :caption: examples/display_shapes_sparkline_triple.py + :linenos: + +Circle Animation +---------------- + +Example showing the features of the new Circle setter + +.. literalinclude:: ../examples/display_shapes_circle_animation.py + :caption: examples/display_shapes_circle_animation.py + :linenos: diff --git a/examples/display_shapes_circle_animation.py b/examples/display_shapes_circle_animation.py new file mode 100644 index 0000000..596e32f --- /dev/null +++ b/examples/display_shapes_circle_animation.py @@ -0,0 +1,60 @@ +# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries +# SPDX-License-Identifier: MIT + +""" +This is an animation to demonstrate the use of Circle Setter Attribute. +""" + +import time +import gc +import board +import displayio +from adafruit_display_shapes.circle import Circle + +# use built in display (MagTag, PyPortal, PyGamer, PyBadge, CLUE, etc.) +# see guide for setting up external displays (TFT / OLED breakouts, RGB matrices, etc.) +# https://learn.adafruit.com/circuitpython-display-support-using-displayio/display-and-display-bus +display = board.DISPLAY + +# Make the display context +main_group = displayio.Group(max_size=2) + +# Make a background color fill +color_bitmap = displayio.Bitmap(display.width, display.height, 1) +color_palette = displayio.Palette(1) +color_palette[0] = 0xFFFFFF +bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=0, y=0) +main_group.append(bg_sprite) + +# Setting up the Circle starting position +posx = 50 +posy = 50 + +# Define Circle characteristics +circle_radius = 20 +circle = Circle(posx, posy, circle_radius, fill=0x00FF00, outline=0xFF00FF) +main_group.append(circle) + +# Define Circle Animation Steps +delta_x = 2 +delta_y = 2 + +# Showing the items on the screen +display.show(main_group) + +while True: + + if circle.y + circle_radius >= display.height - circle_radius: + delta_y = -1 + if circle.x + circle_radius >= display.width - circle_radius: + delta_x = -1 + if circle.x - circle_radius <= 0 - circle_radius: + delta_x = 1 + if circle.y - circle_radius <= 0 - circle_radius: + delta_y = 1 + + circle.x = circle.x + delta_x + circle.y = circle.y + delta_y + + time.sleep(0.02) + gc.collect()