diff --git a/SpectrumView.pas b/SpectrumView.pas index 5e3f9fa..f729828 100644 --- a/SpectrumView.pas +++ b/SpectrumView.pas @@ -526,23 +526,19 @@ procedure TSpectrumView.DrawBeaconMarkers(C: TCanvas; W, H: Integer); C.Pen.Color := Col; C.Pen.Width := 1; C.Pen.Style := Style; C.MoveTo(x, 0); C.LineTo(x, H); end; -var - xc, x1, x2: Integer; begin if FBeaconMarkActive then begin Vline(FBeaconRefFreq, clLime, psDot); // где маяк ДОЛЖЕН быть Vline(FBeaconTrkFreq, TColor($000AA5FF), psSolid); // отслеживаемый центроид (оранж) end; - // Узкий фильтр-маркер декодера: жёлтые грани полосы + центральная линия. + // Узкий фильтр-маркер декодера: грани полосы + центральная линия. Три линии без + // полупрозрачной заливки (как в GL-рендере) — единый вид и дешевле для CPU. if FBeaconDecActive and (FSpanHz > 0) then begin - xc := Round((FBeaconDecFreq - (FCenterFreq - FSpanHz / 2)) / FSpanHz * W); - x1 := Round((FBeaconDecFreq - FBeaconDecHalf - (FCenterFreq - FSpanHz / 2)) / FSpanHz * W); - x2 := Round((FBeaconDecFreq + FBeaconDecHalf - (FCenterFreq - FSpanHz / 2)) / FSpanHz * W); - BlendBand(x1, x2, H, $FF, $D0, $20, 48); // полупрозрачная полоса - C.Pen.Color := TColor($0020D0FF); C.Pen.Width := 1; C.Pen.Style := psSolid; - if (xc >= 0) and (xc < W) then begin C.MoveTo(xc, 0); C.LineTo(xc, H); end; + Vline(FBeaconDecFreq - FBeaconDecHalf, TColor($0020D0FF), psSolid); // грань фильтра + Vline(FBeaconDecFreq + FBeaconDecHalf, TColor($0020D0FF), psSolid); + Vline(FBeaconDecFreq, TColor($0020D0FF), psSolid); // центр наведения end; C.Pen.Style := psSolid; end;