summaryrefslogtreecommitdiff
path: root/epostunit.pas
diff options
context:
space:
mode:
Diffstat (limited to 'epostunit.pas')
-rw-r--r--epostunit.pas98
1 files changed, 68 insertions, 30 deletions
diff --git a/epostunit.pas b/epostunit.pas
index 8a24fda..3247830 100644
--- a/epostunit.pas
+++ b/epostunit.pas
@@ -123,6 +123,8 @@ type
procedure wMinP(miP: tInt64Point);
function rMaxP: tInt64Point;
procedure wMaxP(maP: tInt64Point);
+ function rZDP: tInt64Point;
+ procedure wZDP(zDP: tInt64Point);
function rIstKomplex: boolean;
procedure wIstKomplex(komplex: boolean);
function xScale: extended;
@@ -216,6 +218,7 @@ type
property _maxW: extended read rMaxW write wMaxW;
property _minP: tInt64Point read rMinP write wMinP;
property _maxP: tInt64Point read rMaxP write wMaxP;
+ property _zDP: tInt64Point read rZDP write wZDP;
property istKomplex: boolean read rIstKomplex write wIstKomplex;
end;
tAchse = record
@@ -642,6 +645,8 @@ begin
else if (s='pMaxX') or (s='maxPX') then result:=wertes^[i].disk2kont('x',wertes^[i]._maxP['x'])
else if (s='pMinT') or (s='minPT') or (s='pMinY') or (s='minPY') then result:=wertes^[i].disk2kont('y',wertes^[i]._minP['y'])
else if (s='pMaxT') or (s='maxPT') or (s='pMaxY') or (s='maxPY') then result:=wertes^[i].disk2kont('y',wertes^[i]._maxP['y'])
+ else if (s='pZDX') or (s='zDPX') then result:=wertes^[i].disk2kont('x',wertes^[i]._zDP['x'])
+ else if (s='pZDT') or (s='zDPT') or (s='pZDY') or (s='zDPY') then result:=wertes^[i].disk2kont('y',wertes^[i]._zDP['y'])
else if s='np' then result:=wertes^[i]._np
else if (s='beta') or (s='β') then result:=wertes^[i]._beta
else if s='Breite' then result:=wertes^[i].transformationen.xStart-wertes^[i].transformationen.xStop
@@ -664,6 +669,8 @@ begin
'''minP[XYT]'''#10 +
'''pMax[XYT]'''#10 +
'''maxP[XYT]'''#10 +
+ '''pZD[XYT]'''#10 +
+ '''zDP[XYT]'''#10 +
'''np'''#10 +
'''beta'''#10 +
'''β'''#10 +
@@ -1101,6 +1108,34 @@ begin
end{of case};
end;
+function tWerte.rZDP: tInt64Point;
+begin
+ case genauigkeit of
+ gSingle: result:=sWerte.params.zDP;
+ gDouble: result:=dWerte.params.zDP;
+ gExtended: result:=eWerte.params.zDP;
+ end{of case};
+end;
+
+procedure tWerte.wZDP(zDP: tInt64Point);
+begin
+ transformationen.zDP:=zDP;
+ case genauigkeit of
+ gSingle: begin
+ sWerte.params.zDP:=zDP;
+ sWerte.params.refreshKnownValues;
+ end;
+ gDouble: begin
+ dWerte.params.zDP:=zDP;
+ dWerte.params.refreshKnownValues;
+ end;
+ gExtended: begin
+ eWerte.params.zDP:=zDP;
+ eWerte.params.refreshKnownValues;
+ end;
+ end{of case};
+end;
+
function tWerte.rIstKomplex: boolean;
begin
case genauigkeit of
@@ -7362,38 +7397,41 @@ begin
gExtended:
eWerte.findeZweitdominantestenPunkt(xMin,xMax,tMin,tMax,xFak,tFak,p);
end{of case};
-
- outF:=tMyStringList.create;
- if fileExists(datei) then
- outF.loadFromFile(datei);
- if ueberschreiben then
- outF.grep('^'+escapeStringToRegex(identifizierer + separator,rtFpc),true);
- s:=identifizierer + separator;
- if indizes then
- s:=s+
- intToStr(p['x']-_xSteps*byte(toroidal and (p['x']*2>=_xSteps))) + separator +
- intToStr(p['y']-_tSiz*byte(toroidal and (p['y']*2>=_tSiz))) + separator +
- intToStr(_xSteps) + separator +
- intToStr(_tSiz) + separator
- else
- s:=s+
- myFloatToStr(transformationen.positionAufAchseZuWert(lUnten,p['x']/_xSteps) - (_xStop-_xStart) * (1 + 1/(_xSteps-1)) * byte(toroidal and (p['x']*2>=_xSteps)) ) + separator +
- myFloatToStr(transformationen.positionAufAchseZuWert(lLinks,p['y']/_tSiz) - (_tStop-_tStart) * (1 + 1/(_tSiz-1)) * byte(toroidal and (p['y']*2>=_tSiz)) ) + separator +
- myFloatToStr((_xStop-_xStart) * (1 + 1/(_xSteps-1))) + separator +
- myFloatToStr((_tStop-_tStart) * (1 + 1/(_tSiz-1))) + separator;
- case genauigkeit of
- gSingle:
- s:=s+
- myFloatToStr(sWerte.werte[p['x'] + p['y']*_xSteps]);
- gDouble:
+ _zDP:=p;
+
+ if datei<>'' then begin
+ outF:=tMyStringList.create;
+ if fileExists(datei) then
+ outF.loadFromFile(datei);
+ if ueberschreiben then
+ outF.grep('^'+escapeStringToRegex(identifizierer + separator,rtFpc),true);
+ s:=identifizierer + separator;
+ if indizes then
s:=s+
- myFloatToStr(dWerte.werte[p['x'] + p['y']*_xSteps]);
- gExtended:
+ intToStr(_zDP['x']-_xSteps*byte(toroidal and (_zDP['x']*2>=_xSteps))) + separator +
+ intToStr(_zDP['y']-_tSiz*byte(toroidal and (_zDP['y']*2>=_tSiz))) + separator +
+ intToStr(_xSteps) + separator +
+ intToStr(_tSiz) + separator
+ else
s:=s+
- myFloatToStr(eWerte.werte[p['x'] + p['y']*_xSteps]);
- end{of case};
- outF.add(s);
- outF.saveToFile(datei);
+ myFloatToStr(transformationen.positionAufAchseZuWert(lUnten,_zDP['x']/_xSteps) - (_xStop-_xStart) * (1 + 1/(_xSteps-1)) * byte(toroidal and (_zDP['x']*2>=_xSteps)) ) + separator +
+ myFloatToStr(transformationen.positionAufAchseZuWert(lLinks,_zDP['y']/_tSiz) - (_tStop-_tStart) * (1 + 1/(_tSiz-1)) * byte(toroidal and (_zDP['y']*2>=_tSiz)) ) + separator +
+ myFloatToStr((_xStop-_xStart) * (1 + 1/(_xSteps-1))) + separator +
+ myFloatToStr((_tStop-_tStart) * (1 + 1/(_tSiz-1))) + separator;
+ case genauigkeit of
+ gSingle:
+ s:=s+
+ myFloatToStr(sWerte.werte[_zDP['x'] + _zDP['y']*_xSteps]);
+ gDouble:
+ s:=s+
+ myFloatToStr(dWerte.werte[_zDP['x'] + _zDP['y']*_xSteps]);
+ gExtended:
+ s:=s+
+ myFloatToStr(eWerte.werte[_zDP['x'] + _zDP['y']*_xSteps]);
+ end{of case};
+ outF.add(s);
+ outF.saveToFile(datei);
+ end;
gibAus('... fertig '+timetostr(now-Zeit),3);
result:=true;
end;