diff options
author | Erich Eckner <git@eckner.net> | 2019-09-30 13:14:56 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2019-09-30 13:14:56 +0200 |
commit | 6dd6c3c8a88ced69c93b7c9fad96be539b11b70d (patch) | |
tree | c84dca1125704ed6ffd14f672f3a3452351cf3ac | |
parent | 44c1defe85e75cfef72750fb8b2fcfd901c409ec (diff) | |
download | epost-6dd6c3c8a88ced69c93b7c9fad96be539b11b70d.tar.xz |
werteunit.pas: findeZweitdominantestenPunkt(): Ausblenden der Mitte nun optional
-rw-r--r-- | epostunit.pas | 6 | ||||
-rw-r--r-- | werteunit.pas | 12 |
2 files changed, 10 insertions, 8 deletions
diff --git a/epostunit.pas b/epostunit.pas index fda8aa9..7010500 100644 --- a/epostunit.pas +++ b/epostunit.pas @@ -7391,11 +7391,11 @@ begin case genauigkeit of gSingle: - sWerte.findeZweitdominantestenPunkt(xMin,xMax,tMin,tMax,xFak,tFak,p); + sWerte.findeZweitdominantestenPunkt(xMin,xMax,tMin,tMax,xFak,tFak,false,p); gDouble: - dWerte.findeZweitdominantestenPunkt(xMin,xMax,tMin,tMax,xFak,tFak,p); + dWerte.findeZweitdominantestenPunkt(xMin,xMax,tMin,tMax,xFak,tFak,false,p); gExtended: - eWerte.findeZweitdominantestenPunkt(xMin,xMax,tMin,tMax,xFak,tFak,p); + eWerte.findeZweitdominantestenPunkt(xMin,xMax,tMin,tMax,xFak,tFak,false,p); end{of case}; _zDP:=p; diff --git a/werteunit.pas b/werteunit.pas index d647a00..46a62c7 100644 --- a/werteunit.pas +++ b/werteunit.pas @@ -75,7 +75,7 @@ type procedure holeRAM(ausgaben: byte; gemaeszTXMinMax: boolean); inline; overload; procedure gibMinMaxDichten(out wMi,wMa: extended; out pMi,pMa: tInt64Point; out mMi,mMa: boolean; xMin,xMax,tMin,tMax: longint); function zuPixelWerten(wHoehe,wBreite,xPMi,xMi,tMi: longint; xZ,yZ: extended; mo: boolean; pPWerte: pTExtendedArray; pPAnzahlen: pTLongintArray): boolean; - procedure findeZweitdominantestenPunkt(xMi,xMa,tMi,tMa: longint; xFak,yFak: extended; out maxPos: tInt64Point); + procedure findeZweitdominantestenPunkt(xMi,xMa,tMi,tMa: longint; xFak,yFak: extended; ignoriereMitte: boolean; out maxPos: tInt64Point); function findeSchwellwerte(xMi,xMa,tMi,tMa: longint; Schw: extended): tExtPointArray; procedure integriere(qu: pTLLWerteSingle; xMi,xMa,tMi,tMa,xOf,tOf: longint; richtung: tIntegrationsRichtung); overload; procedure integriere(qu: pTLLWerteDouble; xMi,xMa,tMi,tMa,xOf,tOf: longint; richtung: tIntegrationsRichtung); overload; @@ -1509,7 +1509,7 @@ begin result:=true; end; -procedure tLLWerte.findeZweitdominantestenPunkt(xMi,xMa,tMi,tMa: longint; xFak,yFak: extended; out maxPos: tInt64Point); +procedure tLLWerte.findeZweitdominantestenPunkt(xMi,xMa,tMi,tMa: longint; xFak,yFak: extended; ignoriereMitte: boolean; out maxPos: tInt64Point); var maxima: tInt64PointArray; mCnt,i,iM,iP,j,jM,jP: int64; @@ -1532,8 +1532,9 @@ begin (wert > werte[i+jM*params.xSteps]) and (wert > werte[iP+j*params.xSteps]) and (wert > werte[i+jP*params.xSteps]) and - (2*i<>params.xSteps) and - (2*j<>params.tSiz) then begin + (not ignoriereMitte or + ((2*i<>params.xSteps) and + (2*j<>params.tSiz))) then begin if length(maxima)<=mCnt then setLength(maxima,length(maxima)+1024); maxima[mCnt]['x']:=i; @@ -1562,7 +1563,7 @@ begin break; end; end; - if (i=0) or (minWert>maxWert) then begin + if (i=0) or (i=1) or (minWert>maxWert) then begin maxWert:=minWert; maxPos:=maxima[i]; end; @@ -2114,6 +2115,7 @@ begin betraege.params.tSiz div 2 + 1, xFak, yFak, + true, maxPos ); |