summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2019-09-30 13:14:56 +0200
committerErich Eckner <git@eckner.net>2019-09-30 13:14:56 +0200
commit6dd6c3c8a88ced69c93b7c9fad96be539b11b70d (patch)
treec84dca1125704ed6ffd14f672f3a3452351cf3ac
parent44c1defe85e75cfef72750fb8b2fcfd901c409ec (diff)
downloadepost-6dd6c3c8a88ced69c93b7c9fad96be539b11b70d.tar.xz
werteunit.pas: findeZweitdominantestenPunkt(): Ausblenden der Mitte nun optional
-rw-r--r--epostunit.pas6
-rw-r--r--werteunit.pas12
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
);