diff options
Diffstat (limited to 'werteunit.pas')
-rw-r--r-- | werteunit.pas | 12 |
1 files changed, 7 insertions, 5 deletions
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 ); |