캔버스 기반 응용 프로그램에서 작업하고 있으며 텍스트의 세로 맞춤에 몇 가지 문제가 있습니다. 내가 문제의 원인이라고 생각하는 부동 소수점 좌표를 사용하고 있습니다. 나는 확신하지만, 그럼에도 불구하고 해결책을 찾고 있습니다. 어쨌든, 나는 광장에 문자 'O'를 표시하기 위해 사용하는 코드는, 예를 들어, 다음과 같습니다캔버스 텍스트의 세로 맞춤
context.fillRect(0, 0, 21.864951768488744, 21.864951768488744);
context.textBaseline = 'middle';
context.textAlign = alignLeft ? 'left' : 'center';
context.fillText('O', 10.932475884244372, 10.932475884244372);
캔버스에 결과는 'O'가 수평을 중심으로하지만, 1에 대한 배치된다는 점이다 - 2 중앙의 픽셀.
아무에게도이 의견이 있습니까?
잠재적으로 글꼴이 실제로 자연적으로 중심이 아니거나, 어떤 글꼴을 사용하고 있습니까? 일부 글꼴은 다른 시스템에서 눈에 띄게 다른 위치에 표시 될 수 있습니다 (이는 때로는 매우 놀랍습니다) – DBS
나는 Arial을 사용하고 있습니다. – Peter
세로 맞춤은 글꼴의 기준선을 나타냅니다. 각각의 개별 문자는 세로로 가운데에 있지 않습니다 - 또는 텍스트의 디핑 및 상승 문자가 나타납니다. 큰 문자 인 대문자 "O"는 같은 폰트의 짧은 문자보다 수직으로 더 길어질 가능성이 있습니다. – markE