SHARE
TWEET

Sample

a guest Jun 1st, 2011 210 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. H file :
  2.  
  3. typedef struct {
  4.         double angle;
  5.         double force;
  6. } PhysicsInput;
  7.  
  8. typedef struct {
  9.         double airTime;
  10.         double travelDistance;
  11. } SimulationOutput;
  12.  
  13. typedef struct {
  14.         double targetDistance;
  15.         double distanceWeight;
  16.         double airtimeWeight;
  17. } ObjectiveParams;
  18.  
  19. SimulationOutput simulatePhysics(const PhysicsInput& input);
  20. double objectiveFunc(const PhysicsInput& input, const ObjectiveParams& target);
  21.  
  22.  
  23. C file :
  24.  
  25. #include <math.h>
  26. #include "func.h"
  27.  
  28. SimulationOutput simulatePhysics(const PhysicsInput& input)
  29. {
  30.         SimulationOutput output;
  31.         output.airTime = sin(input.angle) * input.force * 9.8 / 2;
  32.         output.travelDistance = output.airTime * cos(input.angle);
  33.         return output;
  34. }
  35.  
  36. double objectiveFunc(const PhysicsInput& input, const ObjectiveParams& target)
  37. {
  38.         SimulationOutput out = simulatePhysics(input);
  39.         double retVal = 0;
  40.         double distanceFromTarget = (out.travelDistance - target.targetDistance);
  41.         retVal += distanceFromTarget * distanceFromTarget * target.distanceWeight;
  42.         retVal += target.airtimeWeight * out.airTime;
  43.         return retVal;
  44. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top