在.Net中,a decimal将是您可以用于位置的最精确的数据类型.我只想为这个职位写一堂课:
public class Position
{
decimal x;
decimal y;
decimal z;
}
Run Code Online (Sandbox Code Playgroud)
至于时间,你的处理器不能给你任何小于一个滴答的东西.
听起来像一个有趣的项目!祝好运!
Decimal数据类型虽然精确,但可能不是最佳选择,具体取决于您要执行的操作.通常,Direct3D和GPU使用32位浮点数,以及3(总共96位)的向量来表示x,y,z中的位置.
除非你需要在同一个"世界"中混合大尺度(行星)和微观水平(篮球),否则这通常会提供足够的精度.
不使用小数的原因可能是尺寸(大4倍),速度(数量级更慢)和没有三角函数(AFAIK).
在Windows上,QueryPerformanceCounter API函数将为您提供最高分辨率的时钟,而QueryPerformanceFrequency将为您提供 计数器的频率.我相信其他评论中描述的秒表将其包含在.net类中.
小智 5
除非你正在做火箭科学,否则小数就是WAAAY矫枉过正.虽然它可能会给你更精确的位置,但它不一定会给你更精确的(例如)速度,因为它是一个定点数据类型,因此限制在比float或double小得多的范围内.
使用浮子,但保持门打开以向上移动到双打,以防精度变成一个问题.
| 归档时间: |
|
| 查看次数: |
705 次 |
| 最近记录: |