abe takumi
/
abesshape
d
sshape.cpp@0:ee4e3ab4db45, 22 months ago (annotated)
- Committer:
- me33004m
- Date:
- Wed Nov 16 08:37:38 2022 +0000
- Revision:
- 0:ee4e3ab4db45
abesshape
Who changed what in which revision?
User | Revision | Line number | New 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 | } |