• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

kaikai向前走

转职任务完成。崭新fn诞生
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

轨迹(locus)

轨迹是一个物体移动的 时间-位置 函数
locus(t) = (x,y)
通过给定时间t可以得到一个坐标(x,y),由于得到的是二维的坐标,这个轨迹称为二维轨迹
如果得到坐标是三维的,那么这个轨迹是一个三维的轨迹。
同样的,如果得到的结果是一个多维的数据,那么这个轨迹可以描述更多的信息。
比如,除了三维坐标之外,还可以描述物体的方向,旋转角度,甚至缩放,透明度等等。

这样,把轨迹描述为一个模板
template< class Point >
class Locus
{
public:
    
struct Node
    
{
        
int m_time;
        Point m_p;
        
bool operator < (int time) const
        
{
            
return m_time < time;
        }

    }
;
    
void loadData(const char *data);
    
virtual int getInterval(int time, Point &result) = 0;
protected:
    Locus(LocusType type);
    
const LocusType mc_type;
    
int m_time;
    ::std::vector
< Node > m_data;
}
;

具体的轨迹,例如:直线,B样条...都继承这个模板类。重载getInterval函数,得到不同的映射关系。

posted on 2004-12-07 12:21  kaikai  阅读(814)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3