C# 定点转浮点

发布于 2024-11-02 07:56:12 字数 236 浏览 5 评论 0原文

我正在尝试使用 中的示例代码获取真实类型字体字形轮廓在这里

代码中存在一些小错误,包括它仅考虑表示字形点位置的定点值的整个部分。

似乎有很多将浮点值转换为固定值的示例,但反之则不然。 如何将整个 FIXED 值转换为浮点值?

I'm trying to get true type font glyph outlines using sample code from here.

There are some small errors in the code, including the fact that it only considers the whole part of the fixed point values that represent point positions of the glyphs.

There seem to be lots of examples of converting floating point values to fixed, but not vice-versa.
How can I convert the whole FIXED value to a floating point value?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

假装爱人 2024-11-09 07:56:12

public struct FIXED
{
    public short fract;
    public short value;
}

我猜你想将 转换为浮点数。这样的定点数可以像这样转换

var fix = new FIXED { value = 42, fract = 16384 };
double floating = fix.value + (double)fix.fract / 65536;

我除以65536 因为 short 是 16 位 (2^16)。实际上有点奇怪,它是 short 而不是 ushort,因为分数不能为负数。

I guess it's a

public struct FIXED
{
    public short fract;
    public short value;
}

that you want to convert to floating point. Such fixed-point numbers can be converted like this

var fix = new FIXED { value = 42, fract = 16384 };
double floating = fix.value + (double)fix.fract / 65536;

I divide by 65536 because a short is 16 bits (2^16). It's actually kind of strange that's it a short and not a ushort since a fraction can't be negative.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文