Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt/tacanvas.py
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2010-08-12 22:41:29 (GMT)
committer Walter Bender <walter@sugarlabs.org>2010-08-12 22:41:29 (GMT)
commitbc6ec37e87d81367f97157dfd3366f4938c8af00 (patch)
tree1a67a74c70977a1e8c5f45632fac32ddd93d1866 /TurtleArt/tacanvas.py
parentb3d151b60e285339a4f39708f5dce818151a8419 (diff)
Turtle 'sees'
Diffstat (limited to 'TurtleArt/tacanvas.py')
-rw-r--r--TurtleArt/tacanvas.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/TurtleArt/tacanvas.py b/TurtleArt/tacanvas.py
index 667cc0f..72c1c7d 100644
--- a/TurtleArt/tacanvas.py
+++ b/TurtleArt/tacanvas.py
@@ -566,6 +566,24 @@ class TurtleGraphics:
int(w), int(h)),
False)
+ def get_color_index(self, r, g, b, a=0):
+ """ Find the closest palette entry to the rgb triplet """
+ # TODO: Take into account gray and shade levels
+ min_distance = 1000000
+ closest_color = -1
+ for i, c in enumerate(color_table):
+ cr = int((c & 0xff0000) >> 16)
+ cg = int((c & 0x00ff00) >> 8)
+ cb = int((c & 0x0000ff))
+ distance_squared = ((cr - r) ** 2) + ((cg - g) ** 2) + \
+ ((cb - b) ** 2)
+ if distance_squared == 0:
+ return i
+ if distance_squared < min_distance:
+ min_distance = distance_squared
+ closest_color = i
+ return closest_color
+
def get_pixel(self):
""" Read the pixel at x, y """
if self.tw.interactive_mode: