Я заметил артефакт при размещении виджета с текстом по центру холста (\ u25a1) над виджетом с центрированным прямоугольником с таким же значением x:
Поработав с рендерингом шрифтов один или два раза, я понимаю, что существует несколько возможных определений "центрированного". Теперь мне интересно, какой текст Tk canvas используется.
В моих предыдущих проектах я использовал (pen+text.advance)/2
, где text.advance - это накопленная ширина продвижения каждого символа. Это то, что я предполагаю, что Tk использует, основываясь на поведении, которое я испытываю.
Однако другим возможным способом центрирования текста будет центрирование с использованием накопленного покрытия растрового изображения , измеренного от левого края самого левого растрового изображения до правого края самого растрового изображения. Я считаю, что это более вероятно, что я хотел бы.
Q1: Как центрирование текста на холсте Tk должно работать с точки зрения метрик шрифта?
Q2: поведение, которое я вижу, является ошибкой, или, возможно, недостаточно указано?
Редактировать: Работая с ним, квадратный символ иногда выравнивается с прямоугольником, иногда нет. Возможно какая-то ошибка округления. Вопрос в том, является ли это ошибкой.
Редактировать 2: добавление 0.5 к x, кажется, помещает квадрат в правильное место. Может быть, происхождение пикселя определяется по-разному для прямоугольника и текста?