私は軸受のベアリングを受信度に基づいて計算しています。それ以外は、その軸受けの周囲に視界範囲を表示しようとしています。360度のベアリングの範囲の問題
たとえば、入ってくる方位は0度で、+/-ビュー半径は16度です。
は、そのため0で私の分のビュー範囲は、344に「ダウン」になり、そして私の最大は16
私はそれがこの範囲内にある場所に基づいて着色をしていますQGraphicsLineItemを持っている各度まで上昇します。現在配置されている場所の関連角度を持ちます。したがって、アイテムが現在の範囲内にない場合は、赤色になり、青色であれば赤色になります。
私の問題は、チェックする論理条件を見つけようとすることにあります。
現在、私は持っている:
if(item.degrees <= minViewRange && item.degrees <= bearing)
item.colorBlue = true;
else if (item.degrees >= bearing && item.degrees <= maxViewRange)
item.colorBlue = true;
else
item.colorBlue = false;
私はゼロの16度以内になるまで、このすべてが正常に動作します。
たとえば、0のベアリングでは、(0 - 16)条件だけが真であるため、その半分だけが着色されます。 (344から0に)344は、ベアリングが16になったらので、その後(0 32)
どのようにすることができ、その後、私の範囲が正しく再び色の取得0未満
ではありませんので、真実ではありませんこれを補う?
天才ありがとうございます。私の実装では、viewRangeを半分に分割する必要はありませんでした。それを現在の値のままにすると、必要な結果が得られました。 – bauervision
@bauervision最後の更新を参照してください。 – CiaPan