我正在使用GDI将文本绘制到设备上下文中,我注意到如果角度正好是0,90,180或270,则字距调整或字符位置不同。一旦我将角度增加1 ,角色的位置明显不同。
我使用HFONT
来转换设备上下文的世界坐标,而不是使用角度创建ModifyWorldTransform
,然后使用TextOut
将文本绘制到设备上下文中。
我认为当文本以90度的精确倍数绘制时,GDI正在使用字体提示或其他一些特殊技术,但不能用于任何其他角度。
有没有办法禁用此提示,以便0度渲染的文本与1度渲染的文本没有显着差异?
以下是我的意思(Monotype Corsiva字体):
0度:
1度:
对于某些字体,例如Arial或Tahoma,它并不明显,但我想完全消除差异,即使这意味着文本没有尽可能好地呈现。
答案 0 :(得分:1)
我认为这是由于反锯齿而不是字体提示。您可以尝试以下方法:
CreateCompatibleBitmap()
)将文本渲染到其中,然后渲染旋转的位图。这取决于您需要不同旋转/不同文本的频率。fdwOutputPrecision
中使用fdwQuality
和CreateFont()
进行游戏。这可能是最简单的解决方案,但你必须尝试一下我猜。HTH