Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: proto01.cpp
- Revision:
- 5:8dce5092a719
- Parent:
- 4:40c5ac00bb5b
- Child:
- 6:16a24200ab68
diff -r 40c5ac00bb5b -r 8dce5092a719 proto01.cpp
--- a/proto01.cpp Mon Aug 26 06:10:05 2019 +0000
+++ b/proto01.cpp Wed Sep 04 10:01:50 2019 +0000
@@ -3,11 +3,11 @@
Proto1::Proto1(double accdis_, double decdis_, double maxspeed_, double s_vector_)
{
accdis = accdis_;
- accdis2 = accdis;
+ accdis2 = accdis_;
decdis = decdis_;
- decdis2 = decdis;
+ decdis2 = decdis_;
maxspeed = maxspeed_;
- maxspeed2 = maxspeed;
+ maxspeed2 = maxspeed_;
s_vector = s_vector_;
}
@@ -21,17 +21,17 @@
decdis = decdis2;
consdis = targetDis - accdis - decdis;
} else {
- maxspeed /= 2;
- accdis = targetDis / 2;
- decdis = targetDis / 2;
- consdis = 0;
+ maxspeed = maxspeed2 / 2.0;
+ accdis = targetDis / 2.0;
+ decdis = targetDis / 2.0;
+ consdis = 0.0;
}
/*秘伝のコード*/ /*いじるな*/
accsec = 2.0 / maxspeed * accdis;
decsec = 2.0 / maxspeed * decdis;
}
-void Proto1::target_xy(int targetx_, int targety_, int startx_, int starty_)
+void Proto1::targetXY(int targetx_, int targety_, int startx_, int starty_)
{
targetDis = hypot((float)(startx_-targetx_), (float)(starty_-targety_));
startx = startx_;
@@ -44,10 +44,10 @@
decdis = decdis2;
consdis = targetDis - accdis - decdis;
} else {
- maxspeed /= 2;
- accdis = targetDis / 2;
- decdis = targetDis / 2;
- consdis = 0;
+ maxspeed = maxspeed2 / 2.0;
+ accdis = targetDis / 2.0;
+ decdis = targetDis / 2.0;
+ consdis = 0.0;
}
/*秘伝のコード*/ /*いじるな*/
accsec = 2.0 / maxspeed * accdis;
@@ -60,7 +60,7 @@
nowDis = now - start;
}
-void Proto1::Input_nowxy(int now_x, int now_y)
+void Proto1::Input_nowXY(int now_x, int now_y)
{
nowx = now_x;
nowy = now_y;
@@ -70,17 +70,25 @@
void Proto1::calculate()
{
- if (nowDis < accdis) {
- counter = sqrt(2.0*accsec/maxspeed*nowDis);
- vector = s_vector + (-1 * sin((2.0*PI/accsec)*counter) + (2.0*PI/accsec)*counter) / ((2.0*PI)/(maxspeed-s_vector));
- } else if (nowDis >= accdis && nowDis < accdis+consdis) {
- vector = maxspeed;
- } else if (nowDis > (accdis+consdis)) {
- counter = sqrt(2.0*decsec/maxspeed*fabs(targetDis-nowDis));
- vector = (-1 * sin((2.0*PI/decsec)*counter) + (2.0*PI/decsec)*counter) / (2.0*PI/maxspeed);
- } else {
- vector = 0;
- }
+// if(targetDis <= (accdis+decdis)){
+// if(nowDis >= (accdis+decdis)){
+// vector = 0;
+// }else{
+// vector = maxspeed - s_vector;
+// }
+// }else{
+ if (nowDis < accdis) {
+ counter = sqrt(2.0*accsec/maxspeed*fabs(nowDis));
+ vector = s_vector + (-1 * sin((2.0*PI/accsec)*counter) + (2.0*PI/accsec)*counter) / ((2.0*PI)/(maxspeed-s_vector));
+ } else if (nowDis >= accdis && nowDis < accdis+consdis) {
+ vector = maxspeed;
+ } else if (nowDis > (accdis+consdis)) {
+ counter = sqrt(2.0*decsec/maxspeed*fabs(targetDis-nowDis));
+ vector = (-1 * sin((2.0*PI/decsec)*counter) + (2.0*PI/decsec)*counter) / (2.0*PI/maxspeed);
+ } else {
+ vector = 0;
+ }
+// }
}
double Proto1::getvalue()