d

Dependencies:   mbed

Committer:
me33004m
Date:
Wed Nov 16 08:37:38 2022 +0000
Revision:
0:ee4e3ab4db45
abesshape

Who changed what in which revision?

UserRevisionLine numberNew contents of line
me33004m 0:ee4e3ab4db45 1 #include "sshape.h"
me33004m 0:ee4e3ab4db45 2
me33004m 0:ee4e3ab4db45 3 shape::shape(double time){
me33004m 0:ee4e3ab4db45 4 time_c = time;
me33004m 0:ee4e3ab4db45 5 }
me33004m 0:ee4e3ab4db45 6
me33004m 0:ee4e3ab4db45 7 int shape::pm(double num){
me33004m 0:ee4e3ab4db45 8 return (num>0)-(num<0);
me33004m 0:ee4e3ab4db45 9 }
me33004m 0:ee4e3ab4db45 10 double shape::start(){
me33004m 0:ee4e3ab4db45 11 start_m = clock();
me33004m 0:ee4e3ab4db45 12 return start_m;
me33004m 0:ee4e3ab4db45 13 }
me33004m 0:ee4e3ab4db45 14 double shape::shapeTime(double starttime){
me33004m 0:ee4e3ab4db45 15 return ((double)(clock() - starttime) / 100);
me33004m 0:ee4e3ab4db45 16 }
me33004m 0:ee4e3ab4db45 17
me33004m 0:ee4e3ab4db45 18 double shape::compute(double stickpoints,double starttime,double add){
me33004m 0:ee4e3ab4db45 19 shapeS_m = kasokudo(time_c,starttime,stickpoints,add);
me33004m 0:ee4e3ab4db45 20 if(pm(stickpoints - add_m)*shapeS_m <= pm(stickpoints - add)*stickpoints){
me33004m 0:ee4e3ab4db45 21 shapeS_m = kasokudo(time_c,starttime,stickpoints,add);
me33004m 0:ee4e3ab4db45 22 }else{
me33004m 0:ee4e3ab4db45 23 add_m = stickpoints;
me33004m 0:ee4e3ab4db45 24 return add_m;
me33004m 0:ee4e3ab4db45 25 }
me33004m 0:ee4e3ab4db45 26 return shapeS_m;
me33004m 0:ee4e3ab4db45 27 }
me33004m 0:ee4e3ab4db45 28
me33004m 0:ee4e3ab4db45 29 double shape::kasokudo(double time_s,double start_s,double points_s,double add_s){
me33004m 0:ee4e3ab4db45 30
me33004m 0:ee4e3ab4db45 31 if(points_s != 0){
me33004m 0:ee4e3ab4db45 32 if(points_s>add_s){
me33004m 0:ee4e3ab4db45 33 tmp = ((double)(clock() - start_s) / 100)/time_s;
me33004m 0:ee4e3ab4db45 34 shapeSpeed = tmp*tmp*pm(points_s)*fabs(points_s-add_s)*pm(points_s)+add_s;
me33004m 0:ee4e3ab4db45 35 }else{
me33004m 0:ee4e3ab4db45 36 tmp = ((double)(clock() - start_s) / 100)/time_s;
me33004m 0:ee4e3ab4db45 37 shapeSpeed = tmp*tmp*pm(points_s)*-fabs(points_s-add_s)*pm(points_s)+add_s;
me33004m 0:ee4e3ab4db45 38 }
me33004m 0:ee4e3ab4db45 39 }else{
me33004m 0:ee4e3ab4db45 40 if(points_s>add_s){
me33004m 0:ee4e3ab4db45 41 tmp = ((double)(clock() - start_s) / 100)/time_s;
me33004m 0:ee4e3ab4db45 42 shapeSpeed = tmp*tmp*-add_s + add_s;
me33004m 0:ee4e3ab4db45 43 }else{
me33004m 0:ee4e3ab4db45 44 tmp = ((double)(clock() - start_s) / 100)/time_s;
me33004m 0:ee4e3ab4db45 45 shapeSpeed = -tmp*tmp*add_s + add_s;
me33004m 0:ee4e3ab4db45 46 }
me33004m 0:ee4e3ab4db45 47 }
me33004m 0:ee4e3ab4db45 48
me33004m 0:ee4e3ab4db45 49 return shapeSpeed;
me33004m 0:ee4e3ab4db45 50
me33004m 0:ee4e3ab4db45 51 }