#! /usr/bin/python3 # =================================================================== # test/verify round function # =================================================================== doc = ''' if very accurate positioning of the center of a window is important, the window width and height should be an odd number number of pixels. why... the width and height are the number of pixels in a given direction and start counting at 1. pixels coordinates start from 0. With even sided windows (for example 800,400) the center coordinates have a fractional part (i.e. 399.5,299.5). the problem is converting window sizes to window coordinates. for example given a window size of 8 or 9 ... windows size 8 window size 9 count coord count coord 1 0 1 0 2 1 2 1 3 2 3 2 4 3 4 3 5 4 5 4 6 5 6 5 7 6 7 6 8 7 8 7 9 8 with size 8, the center is beween counts 4 and 5. with size 9, the center is exactly count 4. ''' # ------------------------------------------------------------------- # # ------------------------------------------------------------------- def test_round(winx,winy): midx = winx/2 midy = winy/2 rmidx = round(midx) rmidy = round(midy) print() print(f'winx = {winx:<6} {type(winx)}') print(f'winy = {winy:<6} {type(winy)}') print(f'winx/2 = {midx:<6} {type(midx)}') print(f'winy/2 = {midy:<6} {type(midy)}') print(f'round(winx/2) = {rmidx:<7} {type(rmidx)}') print(f'round(winy/2) = {rmidy:<7} {type(rmidy)}') # ------------------------------------------------------------------- # ---- main # ------------------------------------------------------------------- print(doc) test_round(10,6) test_round(11,7) print() print('------------------------------------------------------') test_round(800,400) test_round(801,401)