Skip to content

基于.Net的有符号定点数库,包括定点数、向量、矩阵、四元数、随机数等

Notifications You must be signed in to change notification settings

simplex86/Lwfix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

114 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lwfix

Lwfix 是基于 .Net 的有符号定点数库,包含以下几个模块

  • Numeric
    • Fixed32
    • Fixed64
  • Math
  • Vector
    • Vector2
    • Vector3
  • Matrix
    • Matrix3x3
    • Matrix4x4
  • Quaternion
  • Random

打勾的是已经完成的内容

说明

  • Q32.32 格式的 Fixed32(已完成) 和 Q64.64 格式的 Fixed64(未完成)都约束于 IFixed 接口的。FMath、FVector2、FVector3、FMatrix3x3、FMatrix4x4、FQuaternion、FRandom 等是泛型的,它们都支持约束于 IFixed 接口的自定义类型。由此,您完全可以定义您需要的定点数类型,例如 Fixed128,只要它也约束于 IFixed 接口。

  • 写这个库的初衷是基于 Unity3D 做游戏时需要确保多平台下小数计算的一致性,所以大部分接口都和 UnityEngine 中一致(有个别不同),您可以参照 Unity3D 的文档来使用该库提供的接口(后续会逐步完善注释和文档)。

Warning

虽然接口的命名尽可能和 UnityEngine 保持一致,但就代码风格而言还是有区别的:属性的首字母大写

测试

为了尽可能保持工程简洁,所有的测试都放在了独立的 Lwfix-Test 项目中。

Tip

测试工程主要检验各个接口的正确性,并不涉及性能。

TODO

  • 物理引擎

    原计划在现有的基于 C# 实现的物理引擎基础上修改出对应的定点数版本,但因为没有熟悉的引擎可直接使用,这项计划有较大的学习成本。

  • Physics

    • 2D
    • 3D
  • UnityEngine

    写这套代码的初衷是为了给基于 UnityEngine 开发的游戏提供具有计算一致性的定点数,有完善且方便在 UnityEngine 下使用的各类组件似乎是必要的。但目前而言,在完成物理引擎移植后再进行这步计划意义更大些。

  • Unity

    • Script
    • Editor

About

基于.Net的有符号定点数库,包括定点数、向量、矩阵、四元数、随机数等

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages