I'm planning in programming the natural curve into the driver #27
Replies: 3 comments 20 replies
|
Hey, It's awesome to hear that someone is working on new features! I'm currently working on adding a robust testing suite, so the project structure might change a bit, but this shouldn't be an issue (and might take a long time, because I have a bunch of exams in the upcoming weeks). |
|
Some progress, this is looking good (I think): Next step will be reviewing the validation (I see you have a function for that), after that I will proceed with saving the parameters into the config.h file and the other format you have available. After all of that, it comes the driver part. |
|
Hi again, I'm now doing the driver part and I'm very grateful that you made the Test Suit, it is making the whole thing more manageable. I would like to ask how would you like the offset to be handled in the natural curve... I love how rawaccel is handling the transition between the constant part and the curve that's why the offset is in the equation... instead of adding the g_Offset as an extern, I just added it as a parameter for the time being: FP_LONG accel_linear(FP_LONG speed);
FP_LONG accel_power(FP_LONG speed);
FP_LONG accel_classic(FP_LONG speed);
FP_LONG accel_motivity(FP_LONG speed);
FP_LONG accel_natural(FP_LONG speed, FP_LONG n_offset);
FP_LONG accel_jump(FP_LONG speed);
FP_LONG accel_lut(FP_LONG speed);In FunctionHelper.cpp if (x <= params->offset) {
val = 1;
} else {
float limit = params->exponent - 1.0;
float auxiliar_accel = params->accel / std::fabs(limit);
float offset = params->offset;
float n_offset_x = offset - x;
float decay = std::exp(auxiliar_accel * n_offset_x);
if (params->useSmoothing) {
float auxiliar_constant = -limit / auxiliar_accel;
float numerator =
limit * ((decay / auxiliar_accel) - n_offset_x) +
auxiliar_constant;
val = (numerator / x) + 1.0;
} else {
val = limit * (1.0 - (offset - decay * n_offset_x) / x) + 1.0;
}
}
break; |


Uh oh!
There was an error while loading. Please reload this page.
Greetings, I'm just telling this out loud in case there is already some development into it and to prevent multiple people working on the same.
@AndyFilter you already mentioned how you start with the gui and how you test it on a vm so I already prepared that.
If there's already someone working on it tell me please
Thank you in advance
All reactions