Пришло в голову, как узнавать координату занимаемой ячейки, не сравнивая со всеми возможными координатами.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright 2014 denis8424 <denis8424blender@gmail.com> )))
# шаг ячейки
step = 2.0
# координата указателя мыши
x = 13.1
# рассчет ближайшей меньшей координаты ячейки
minX = (x//step)* step
# рассчет ближайшей большей координаты ячейки
maxX = minX + step
# смотрим, что получилось
print('minX-', minX, 'maxX-', maxX)
# временное расстояние
tempDist = 10000
# итоговая координата ячейки
pointX = 0
# берем поочередно меньшую и большую ближайшую координату
for koord in [minX, maxX]:
# считаем расстояние между ней и координатой курсора
dist = abs(koord - x)
# если расстояние меньше временного
if dist < tempDist:
# то временная дистанция = полученной
tempDist = dist
# а итоговая координата = текущей
pointX = koord
# любуемся на то, что получилось.
print('koord-', pointX)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright 2014 denis8424 <denis8424blender@gmail.com> )))
# шаг ячейки
step = 2.0
# координата указателя мыши
x = 13.1
# рассчет ближайшей меньшей координаты ячейки
minX = (x//step)* step
# рассчет ближайшей большей координаты ячейки
maxX = minX + step
# смотрим, что получилось
print('minX-', minX, 'maxX-', maxX)
# временное расстояние
tempDist = 10000
# итоговая координата ячейки
pointX = 0
# берем поочередно меньшую и большую ближайшую координату
for koord in [minX, maxX]:
# считаем расстояние между ней и координатой курсора
dist = abs(koord - x)
# если расстояние меньше временного
if dist < tempDist:
# то временная дистанция = полученной
tempDist = dist
# а итоговая координата = текущей
pointX = koord
# любуемся на то, что получилось.
print('koord-', pointX)
Комментариев нет:
Отправить комментарий