我正在尝试使用here中的示例代码获取真实的字体字形轮廓。
代码中存在一些小错误,包括它只考虑表示字形点位置的固定点值的整个部分。
似乎有很多将浮点值转换为固定值的示例,但反之亦然。 如何将整个FIXED值转换为浮点值?
答案 0 :(得分:3)
我想这是一个
public struct FIXED
{
public short fract;
public short value;
}
您要转换为浮点数。这样的fixed-point numbers可以像这样转换
var fix = new FIXED { value = 42, fract = 16384 };
double floating = fix.value + (double)fix.fract / 65536;
我除以65536
因为short
是16位(2 ^ 16)。它实际上有点奇怪,它是short
而不是ushort
,因为分数不能为负数。