From f0a2aff207e0917547d2a13803b601c02331a261 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Mon, 7 Aug 2017 11:12:08 +0200 Subject: bugfixes to previous commit --- epost.lps | 88 +++++++++++++++++++++++++++++------------------------------ epostunit.pas | 12 ++++++-- werteunit.pas | 6 ++-- 3 files changed, 56 insertions(+), 50 deletions(-) diff --git a/epost.lps b/epost.lps index 46be1fc..fb7c59a 100644 --- a/epost.lps +++ b/epost.lps @@ -7,7 +7,7 @@ - + @@ -24,8 +24,8 @@ - - + + @@ -40,8 +40,8 @@ - - + + @@ -59,7 +59,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -76,7 +76,7 @@ - + @@ -97,7 +97,7 @@ - + @@ -110,7 +110,7 @@ - + @@ -201,121 +201,121 @@ - + + - + - + - + + - + - + - - + - + - + - + - + - + - + - + - + - + - - + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - + diff --git a/epostunit.pas b/epostunit.pas index c393734..6b4a0f8 100644 --- a/epostunit.pas +++ b/epostunit.pas @@ -4010,6 +4010,14 @@ begin until false; _tSiz:=_tSiz*2; + case genauigkeit of + gSingle: + sWerte.params.istKomplex:=true; + gDouble: + dWerte.params.istKomplex:=true; + gExtended: + eWerte.params.istKomplex:=true; + end{of case}; if sT then begin result:=true; exit; @@ -5841,7 +5849,6 @@ end; procedure tBilderThread.stExecute; var i,j,k: longint; - hLen: int64; wert: extended; b: boolean; frb: tRGB; @@ -5867,9 +5874,8 @@ begin farben[i-xPMi+(j+oOf)*breite].rgbGreen:=0; farben[i-xPMi+(j+oOf)*breite].rgbBlue:=0; for k:=0 to length(wertes)-1 do begin - hLen:=length(wertes[k]) div 2; for b:=false to istKomplex[k] do begin - wert:=(wertes[k,i-max(0,xPMi)+(j+byte(b and istKomplex[k])*hLen)*wBreite]/anzahlens[k,i-max(0,xPMi)+j*wBreite]-ws[k]._minW)/(ws[k]._maxW-ws[k]._minW); + wert:=(wertes[k,i-max(0,xPMi)+(j+byte(b and istKomplex[k])*(ws[k]._tSiz div 2))*wBreite]/anzahlens[k,i-max(0,xPMi)+j*wBreite]-ws[k]._minW)/(ws[k]._maxW-ws[k]._minW); wert:=max(0,min(wert,1)); wert:=nbs[k].transformiereWert(wert); frb:=pals[k].wertZuFarbe(wert,b); diff --git a/werteunit.pas b/werteunit.pas index 81d016d..dd9c137 100644 --- a/werteunit.pas +++ b/werteunit.pas @@ -1429,14 +1429,14 @@ begin for i:=0 to length(pPAnzahlen^)-1 do pPAnzahlen^[i]:=0; b:=false; - hLen:=length(werte) div 2; + hLen:=params.tSiz div (1+byte(params.istKomplex)); for imPart:=false to params.istKomplex do for j:=0 to wHoehe-1 do for i:=0 to wBreite-1 do begin xV:=min(params.xSteps-1,max(0,ceil((i+max(0,xPMi)-1/2)/xZ+xMi))); xB:=min(params.xSteps-1,max(0,ceil((i+max(0,xPMi)+1/2)/xZ+xMi-1))); - tV:=min(params.tSiz div (1+byte(params.istKomplex))-1,max(0,ceil((j-1/2)/yZ+tMi)))+byte(imPart)*hLen; - tB:=min(params.tSiz div (1+byte(params.istKomplex))-1,max(0,ceil((j+1/2)/yZ+tMi-1)))+byte(imPart)*hLen; + tV:=min(hLen-1,max(0,ceil((j-1/2)/yZ+tMi)))+byte(imPart)*hLen; + tB:=min(hLen-1,max(0,ceil((j+1/2)/yZ+tMi-1)))+byte(imPart)*hLen; if xV>xB then begin if (i>0) or (xPMi>0) then dec(xV) -- cgit v1.2.3-70-g09d2