We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
强烈希望增加“可用襟翼”功能于minihud恰当位置,主要工作量在于可视化方面,小部分工作量是对现有襟翼限速代码的小幅调整与复制粘贴。可用襟翼的计算方法为:当前襟翼开度/当前表速下襟翼极限开度(适用于数字显示);或1-当前襟翼开度/当前表速下襟翼极限开度(适用于条型显示)……
当前版本的语音提醒中已有关于襟翼限速的提醒,然而其在算法逻辑与人机界面便利性存在改进空间。当前的算法使用的是当前表速/当前襟翼开度下的极限表速,这样的算法会造成开关襟翼操作时一定的困惑;同时目前缺乏视觉直观性,使高烈度战斗下对极限掌握不准。
此外,值得注意的是,当前算法对“襟翼极限-表速”的线性插值似乎也有改进的可能。对于有0,1档或更多档襟翼限速的飞机建议在插值时考虑0档以内的情况。图中针对有0,1,2档的飞机展现了这一差异,其中三个红标是flightmodel中的襟翼限速点,目前的算法是橙色线,建议将0档以下那段调整至蓝线所示;对几架飞机使用auto-flap插件的实测证明这样做是合理的。
同时,图中直观展现了使用“当前襟翼/当前速度下的襟翼极限”与“当前表速/当前襟翼下的表速极限”的差异,而前者在使用中更加合理。
最后,关于如何添加至miniHUD有几个或许有用的参考建议。①若使用数字显示务必留出3位数的显示,考虑到襟翼使用时极限程度时常短暂的超过100%。②若使用类似攻角条的图形化显示要为超过100%后的部分留合适空间。③若为数字显示或许可以考虑代替当前的“GEAR”(缺点是可能和襟翼数值混在一起不好看清),或高度表(当前版本所有飞机都加了无线电高度且显示在左上角,缺点是不符合一部分使用者的习惯)。④若为图形化显示最好可以放到襟翼值的附近,或干脆使用“可用攻角,攻角”的同款显示模式放在某一行或作为一个竖条放在节流阀条的左边。⑤会变色告警,当下告警代码使用的也是速度比而非更为理想的襟翼值比。
算法层面,主要应用并小调同时被可视化至minihud的应该是这一段。 public double getFlapAllowSpeed(int flapPercent, Boolean isDowningFlap) { // fm文件无法解析 if (flapPercent == 0 || c.blkx == null || !c.blkx.valid) return Double.MAX_VALUE;
// 找到襟翼档位 int i = 0; for (; i < c.blkx.FlapsDestructionNum; i++) { // 大于 if (flapPercent < c.blkx.FlapsDestructionIndSpeed[i][0] * 100.0f) { break; } } // 找到档位了 // 线性求值 // 找前面的flap值 double x0, x1, y0, y1; double k; // 没有找到,都小于 if (i == 0) { // 下襟翼时直接越级使用下一级 if (isDowningFlap) { return c.blkx.FlapsDestructionIndSpeed[i][1]; } // 襟翼只有0级 // if(c.blkx.FlapsDestructionNum == 0){ // return c.blkx.FlapsDestructionIndSpeed[0][1]; // } return Double.MAX_VALUE; } else { // 下襟翼时直接越级使用 // if (isDowningFlap) { // return c.blkx.FlapsDestructionIndSpeed[i][1]; // } // 相等 if (flapPercent == c.blkx.FlapsDestructionIndSpeed[i - 1][0] * 100.0f) { // 直接返回速度 return c.blkx.FlapsDestructionIndSpeed[i - 1][1]; } // 否则进行线性插值运算 // 算斜率 x0 = c.blkx.FlapsDestructionIndSpeed[i - 1][0] * 100.0f; y0 = c.blkx.FlapsDestructionIndSpeed[i - 1][1]; x1 = c.blkx.FlapsDestructionIndSpeed[i][0] * 100.0f; y1 = c.blkx.FlapsDestructionIndSpeed[i][1]; if (x1 - x0 != 0) { k = (y1 - y0) / (x1 - x0); } else { k = 0; } // 速度等于 // app.debugPrint(x0 + "-" + x1 + ", " + y0 + "-" + y1); return y0 + (flapPercent - x0) * k; } }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
强烈希望增加“可用襟翼”功能于minihud恰当位置,主要工作量在于可视化方面,小部分工作量是对现有襟翼限速代码的小幅调整与复制粘贴。可用襟翼的计算方法为:当前襟翼开度/当前表速下襟翼极限开度(适用于数字显示);或1-当前襟翼开度/当前表速下襟翼极限开度(适用于条型显示)……
当前版本的语音提醒中已有关于襟翼限速的提醒,然而其在算法逻辑与人机界面便利性存在改进空间。当前的算法使用的是当前表速/当前襟翼开度下的极限表速,这样的算法会造成开关襟翼操作时一定的困惑;同时目前缺乏视觉直观性,使高烈度战斗下对极限掌握不准。
此外,值得注意的是,当前算法对“襟翼极限-表速”的线性插值似乎也有改进的可能。对于有0,1档或更多档襟翼限速的飞机建议在插值时考虑0档以内的情况。图中针对有0,1,2档的飞机展现了这一差异,其中三个红标是flightmodel中的襟翼限速点,目前的算法是橙色线,建议将0档以下那段调整至蓝线所示;对几架飞机使用auto-flap插件的实测证明这样做是合理的。
同时,图中直观展现了使用“当前襟翼/当前速度下的襟翼极限”与“当前表速/当前襟翼下的表速极限”的差异,而前者在使用中更加合理。
最后,关于如何添加至miniHUD有几个或许有用的参考建议。①若使用数字显示务必留出3位数的显示,考虑到襟翼使用时极限程度时常短暂的超过100%。②若使用类似攻角条的图形化显示要为超过100%后的部分留合适空间。③若为数字显示或许可以考虑代替当前的“GEAR”(缺点是可能和襟翼数值混在一起不好看清),或高度表(当前版本所有飞机都加了无线电高度且显示在左上角,缺点是不符合一部分使用者的习惯)。④若为图形化显示最好可以放到襟翼值的附近,或干脆使用“可用攻角,攻角”的同款显示模式放在某一行或作为一个竖条放在节流阀条的左边。⑤会变色告警,当下告警代码使用的也是速度比而非更为理想的襟翼值比。
算法层面,主要应用并小调同时被可视化至minihud的应该是这一段。
public double getFlapAllowSpeed(int flapPercent, Boolean isDowningFlap) {
// fm文件无法解析
if (flapPercent == 0 || c.blkx == null || !c.blkx.valid)
return Double.MAX_VALUE;
The text was updated successfully, but these errors were encountered: