[Tkinter-discuss] Find_closest, bbox, and weirdness

Russell E Owen rowen at cesmail.net
Thu Jan 18 22:30:47 CET 2007


At 9:21 PM +0000 2007-01-18, Cameron Laird wrote:
>On Thu, Jan 18, 2007 at 12:36:18PM -0800, Russell E Owen wrote:
>			.
>			.
>			.
>>  > Here was the plan: Compute the line that connects the centers of the
>>  > text objects.  Figure out where that line intersects the bounding boxes
>>  > of the texts, and draw the lines to the intersection points instead of
>>  > center-to-center.
>>  >
>>  > It all works ... except that I don't get the right bounding boxes. 
>>  > Here's the code:
>>
>>  it sounds like object with ID 1 may be overlapping all the other
>>  objects. Tk's find_closest is primitive in how it handles overlap.
>>
>>  Unless you can guarantee that your text objects will never overlap I
>>  suggest you find the closest one yourself. Keep a list of object coords
>>  and scan through them. If the objects can be moved around then use a
>>  callback to update the position.
>			.
>			.
>			.
>?  I've had *great* results with "closest".  While I agree
>that your approach should be kept in mind, it's not the
>first one I try when I'm in the situation I understand from
>the original description.  Do you have any details on how
>"closest" has failed for you?

My problem was find_closest's handling of overlapping objects. I 
built a star display (stars on an Az/Alt grid). I wanted data for the 
star closest to the pointer displayed. But sometimes the blobs 
representing stars overlap causing data for the wrong star to be 
displayed.

I suppose I could have added an invisible single pixel object at the 
center of each visible blob and found using that. But I'm happier 
with my solution.

-- Russell


More information about the Tkinter-discuss mailing list