summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2019-09-26 11:57:33 +0200
committerErich Eckner <git@eckner.net>2019-09-26 11:57:33 +0200
commitfd3533ff2115e9551656a231651ba99b2d575e1a (patch)
tree1124a450c850ba81faa4bd1df8f7922feffe8e01
parent5c5c0a0e2d5b4489396bd7295110103ca4465d08 (diff)
downloadepost-fd3533ff2115e9551656a231651ba99b2d575e1a.tar.xz
typenunit.pas: tLineareAchsenVerzerrTransformation kann nun beliebigen Offset
-rw-r--r--epost.lps86
-rw-r--r--epostunit.pas6
-rw-r--r--typenunit.pas18
3 files changed, 53 insertions, 57 deletions
diff --git a/epost.lps b/epost.lps
index e8db9a2..095908b 100644
--- a/epost.lps
+++ b/epost.lps
@@ -22,10 +22,9 @@
<Unit2>
<Filename Value="epostunit.pas"/>
<IsPartOfProject Value="True"/>
- <IsVisibleTab Value="True"/>
<EditorIndex Value="2"/>
- <TopLine Value="5920"/>
- <CursorPos Y="5945"/>
+ <TopLine Value="5265"/>
+ <CursorPos X="85" Y="5280"/>
<UsageCount Value="201"/>
<Loaded Value="True"/>
</Unit2>
@@ -41,9 +40,10 @@
<Unit4>
<Filename Value="typenunit.pas"/>
<IsPartOfProject Value="True"/>
+ <IsVisibleTab Value="True"/>
<EditorIndex Value="9"/>
- <TopLine Value="2891"/>
- <CursorPos X="45" Y="2896"/>
+ <TopLine Value="2825"/>
+ <CursorPos Y="2842"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit4>
@@ -85,7 +85,7 @@
<EditorIndex Value="6"/>
<TopLine Value="86"/>
<CursorPos X="26" Y="115"/>
- <UsageCount Value="50"/>
+ <UsageCount Value="51"/>
<Loaded Value="True"/>
</Unit9>
<Unit10>
@@ -93,7 +93,7 @@
<IsPartOfProject Value="True"/>
<EditorIndex Value="7"/>
<CursorPos X="3" Y="2"/>
- <UsageCount Value="46"/>
+ <UsageCount Value="47"/>
<Loaded Value="True"/>
</Unit10>
<Unit11>
@@ -211,121 +211,123 @@
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="typenunit.pas"/>
- <Caret Line="567" Column="36" TopLine="538"/>
+ <Caret Line="19" TopLine="19"/>
</Position1>
<Position2>
<Filename Value="typenunit.pas"/>
- <Caret Line="585" Column="36" TopLine="556"/>
+ <Caret Line="280" Column="18" TopLine="275"/>
</Position2>
<Position3>
<Filename Value="typenunit.pas"/>
- <Caret Line="598" Column="36" TopLine="569"/>
+ <Caret Line="283" Column="65" TopLine="275"/>
</Position3>
<Position4>
- <Filename Value="epostunit.pas"/>
- <Caret Line="5379" Column="62" TopLine="5347"/>
+ <Filename Value="typenunit.pas"/>
+ <Caret Line="284" Column="52" TopLine="275"/>
</Position4>
<Position5>
- <Filename Value="epostunit.pas"/>
- <Caret Line="185" Column="33" TopLine="169"/>
+ <Filename Value="typenunit.pas"/>
+ <Caret Line="299" Column="47" TopLine="275"/>
</Position5>
<Position6>
<Filename Value="typenunit.pas"/>
- <Caret Line="2201" Column="48" TopLine="2199"/>
+ <Caret Line="301" Column="50" TopLine="299"/>
</Position6>
<Position7>
<Filename Value="typenunit.pas"/>
+ <Caret Line="302" Column="18" TopLine="295"/>
</Position7>
<Position8>
<Filename Value="typenunit.pas"/>
- <Caret Line="375" Column="36" TopLine="347"/>
+ <Caret Line="306" Column="48" TopLine="293"/>
</Position8>
<Position9>
<Filename Value="typenunit.pas"/>
- <Caret Line="417" Column="36" TopLine="388"/>
+ <Caret Line="358" Column="55" TopLine="330"/>
</Position9>
<Position10>
<Filename Value="typenunit.pas"/>
- <Caret Line="440" Column="36" TopLine="411"/>
+ <Caret Line="359" Column="52" TopLine="331"/>
</Position10>
<Position11>
<Filename Value="typenunit.pas"/>
- <Caret Line="452" Column="36" TopLine="423"/>
+ <Caret Line="360" Column="55" TopLine="332"/>
</Position11>
<Position12>
<Filename Value="typenunit.pas"/>
- <Caret Line="517" Column="36" TopLine="488"/>
+ <Caret Line="361" Column="52" TopLine="333"/>
</Position12>
<Position13>
<Filename Value="typenunit.pas"/>
- <Caret Line="567" Column="36" TopLine="538"/>
+ <Caret Line="364" Column="52" TopLine="336"/>
</Position13>
<Position14>
<Filename Value="typenunit.pas"/>
- <Caret Line="585" Column="36" TopLine="556"/>
+ <Caret Line="365" Column="51" TopLine="337"/>
</Position14>
<Position15>
<Filename Value="typenunit.pas"/>
- <Caret Line="598" Column="36" TopLine="569"/>
+ <Caret Line="414" Column="48" TopLine="385"/>
</Position15>
<Position16>
<Filename Value="typenunit.pas"/>
- <Caret Line="2201" Column="48" TopLine="2190"/>
+ <Caret Line="420" Column="39" TopLine="409"/>
</Position16>
<Position17>
<Filename Value="typenunit.pas"/>
- <Caret Line="2216" Column="52" TopLine="2190"/>
+ <Caret Line="422" Column="49" TopLine="409"/>
</Position17>
<Position18>
<Filename Value="typenunit.pas"/>
- <Caret Line="2306" Column="53" TopLine="2301"/>
+ <Caret Line="424" Column="42" TopLine="409"/>
</Position18>
<Position19>
<Filename Value="typenunit.pas"/>
- <Caret Line="2403" Column="51" TopLine="2395"/>
+ <Caret Line="427" Column="48" TopLine="409"/>
</Position19>
<Position20>
<Filename Value="typenunit.pas"/>
- <Caret Line="2411" Column="45" TopLine="2395"/>
+ <Caret Line="429" Column="29" TopLine="421"/>
</Position20>
<Position21>
<Filename Value="typenunit.pas"/>
- <Caret Line="2486" Column="50" TopLine="2478"/>
+ <Caret Line="433" Column="57" TopLine="433"/>
</Position21>
<Position22>
<Filename Value="typenunit.pas"/>
- <Caret Line="2915" Column="94" TopLine="2891"/>
+ <Caret Line="444" Column="56" TopLine="433"/>
</Position22>
<Position23>
<Filename Value="typenunit.pas"/>
- <Caret Line="2939" Column="16" TopLine="2913"/>
+ <Caret Line="456" Column="65" TopLine="445"/>
</Position23>
<Position24>
<Filename Value="typenunit.pas"/>
- <Caret Line="2904" Column="14" TopLine="2886"/>
+ <Caret Line="495" TopLine="466"/>
</Position24>
<Position25>
- <Filename Value="epostunit.pas"/>
- <Caret Line="5367" Column="3" TopLine="5347"/>
+ <Filename Value="typenunit.pas"/>
+ <Caret Line="2809" Column="39" TopLine="2791"/>
</Position25>
<Position26>
- <Filename Value="epostunit.pas"/>
- <Caret Line="183" Column="39" TopLine="167"/>
+ <Filename Value="typenunit.pas"/>
+ <Caret Line="2816" Column="45" TopLine="2798"/>
</Position26>
<Position27>
- <Filename Value="epostunit.pas"/>
- <Caret Line="5859" Column="42" TopLine="5935"/>
+ <Filename Value="typenunit.pas"/>
+ <Caret Line="2825" Column="69" TopLine="2807"/>
</Position27>
<Position28>
- <Filename Value="epostunit.pas"/>
+ <Filename Value="typenunit.pas"/>
+ <Caret Line="2837" Column="17" TopLine="2819"/>
</Position28>
<Position29>
- <Filename Value="epostunit.pas"/>
- <Caret Line="178" Column="29" TopLine="150"/>
+ <Filename Value="typenunit.pas"/>
+ <Caret Line="2846" TopLine="2829"/>
</Position29>
<Position30>
<Filename Value="epostunit.pas"/>
- <Caret Line="5510" TopLine="5481"/>
+ <Caret Line="5280" Column="85" TopLine="5265"/>
</Position30>
</JumpHistory>
<RunParams>
diff --git a/epostunit.pas b/epostunit.pas
index 974619a..84326f3 100644
--- a/epostunit.pas
+++ b/epostunit.pas
@@ -5275,10 +5275,10 @@ begin
knownValues.add(speichernAls+'.y0',_tStart);
end;
transformation:=tLineareAchsenVerzerrTransformation.create;
- for c:='x' to 'y' do begin
- transformation.fak[c]:=abs(exprToFloat(sT,skalierung[c]));
+ for c:='x' to 'y' do begin // die Reihenfolge ist wichtig:
+ transformation.offset[c]:=-byte(nullen[c]) * transformation.achsen[c,'x']; // zuerst der Offset,
+ transformation.fak[c]:=abs(exprToFloat(sT,skalierung[c])); // dann der Faktor!
knownValues.add(speichernAls+'.'+c+'Faktor',transformation.fak[c]);
- transformation.nullen[c]:=nullen[c];
end;
transformation.fuegeVorgaengerHinzu(transformationen);
transformationen:=transformation;
diff --git a/typenunit.pas b/typenunit.pas
index b36a185..7aeb9c7 100644
--- a/typenunit.pas
+++ b/typenunit.pas
@@ -491,8 +491,7 @@ type
function transformiereAchseEinzelnInvers(const l: tLage; x: extended; auszerhalbIstFehler: boolean = true): extended; override;
// keine Ă„nderung der Werte
public
- fak: tExtPoint;
- nullen: array['x'..'y'] of boolean;
+ fak,offset: tExtPoint;
constructor create;
function dumpParams: string; override;
end;
@@ -2807,14 +2806,14 @@ var
begin
for c:='x' to 'y' do
for d:='x' to 'y' do
- outAchsen[c,d]:=(inAchsen[c,d] - inAchsen[c,'x']*byte(nullen[c]))*fak[c];
+ outAchsen[c,d]:=(inAchsen[c,d] + offset[c])*fak[c];
end;
function tLineareAchsenVerzerrTransformation.transformiereAchseEinzeln(const l: tLage; x: extended; auszerhalbIstFehler: boolean = true): extended;
begin
if auszerhalbIstFehler then
testeAuszerhalb(true,false,l,x);
- result:=(x - inAchsen[paralleleRichtung[l],'x'] * byte(nullen[paralleleRichtung[l]])) * fak[paralleleRichtung[l]];
+ result:=(x + offset[paralleleRichtung[l]]) * fak[paralleleRichtung[l]];
if auszerhalbIstFehler then
testeAuszerhalb(false,false,l,result);
end;
@@ -2823,7 +2822,7 @@ function tLineareAchsenVerzerrTransformation.transformiereAchseEinzelnInvers(con
begin
if auszerhalbIstFehler then
testeAuszerhalb(false,false,l,x);
- result:=x/fak[paralleleRichtung[l]] + inAchsen[paralleleRichtung[l],'x'] * byte(nullen[paralleleRichtung[l]]);
+ result:=x/fak[paralleleRichtung[l]] - offset[paralleleRichtung[l]];
if auszerhalbIstFehler then
testeAuszerhalb(true,false,l,result);
end;
@@ -2835,18 +2834,13 @@ begin
inherited create;
for c:='x' to 'y' do begin
fak[c]:=1;
- nullen[c]:=false;
+ offset[c]:=0;
end;
end;
function tLineareAchsenVerzerrTransformation.dumpParams: string;
-var
- c: char;
begin
- result:='* ' + tExtPointToStr(fak) + ' ' + inherited dumpParams;
- for c:='y' downto 'x' do
- if nullen[c] then
- result:=c+'-zentriert '+result;
+ result:='+ ' + tExtPointToStr(offset) + ' * ' + tExtPointToStr(fak) + ' ' + inherited dumpParams;
end;
// tGroeszenVerdopplungsTransformation *****************************************