zoukankan      html  css  js  c++  java
  • 物理引擎接口

    作者:朱凯 日期:2017年01月06日

    1 结构分析

    1.1 类定义

    • 冰球类:class Puck
    • 球桌类:class Table
    • 击球器类:class Hockey_stick

    1.2 关键函数

    根据以上的类,以及如下需求:

    输入:击球器的当前位置和速度(受机器人控制)。 输出:冰球的当前位置和速度。 可以得知关键函数是碰撞检测以及碰撞后的速度计算。其中难点是碰撞检测。

    • void check_collision();//检查碰撞
    • void update_position();//更新位置
    • void update_velocity();//更新速度

    2 接口设计

    物理引擎是相对独立的一块,只需要向GUI和策略提供简单接口。

    2.1 算法接口

    • void PuckStep();//更新物理状态

    2.2 数据接口

    冰球:

    • double radius;
    • double position[AXIS_COUNT];
    • double velocity[AXIS_COUNT];
    • double mass; 与common中的参数对应,并且每次将参数传给common中的变量。

    球桌:

    • double length;
    • double width;
    • double goalline1;
    • double goalline2;

    球棍:

    • double radius;
    • double mass;
    • double pre_position[AXIS_COUNT], cur_position[AXIS_COUNT];
    • double velocity[AXIS_COUNT]; 以上为类之中参数。

    • static double default_puck_radius = 0;

    • static double default_puck_mass = 0;

    • static double default_table_length = 0;

    • static double default_table_width = 0;

    • static double default_hockey_stick_radius = 0;

    • static double default_hockey_stick_mass = 0;

    • static double default_goal_length1 = 0;

    • static double default_goal_length2 = 0; 以上参数为预设值,其它模块直接可采用。
  • 相关阅读:
    对称的二元变量和不对称的二元变量之间的区别是什么?
    数据挖掘中ID3算法实现zz
    深入浅出谈数据挖掘zz
    JS动态生成表格后 合并单元格
    JS 点击元素发ajax请求 打开一个新窗口
    JS实现拖动div层移动
    简单的表格json控件
    JS添加标签效果
    JS模板引擎
    如何使用seajs+jQuery构建中型项目
  • 原文地址:https://www.cnblogs.com/zhukkkk/p/6257076.html
Copyright © 2011-2022 走看看