summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2019-09-26 11:12:00 +0200
committerErich Eckner <git@eckner.net>2019-09-26 11:12:00 +0200
commitffa782d4ba9f307fe713db7de89a9e0131b92cb6 (patch)
tree1c828a6629c8c8349dc00ace3e45bf1a2265f769
parentf1b047d60a449c0b3131e2fc0269228281c824e4 (diff)
downloadepost-ffa782d4ba9f307fe713db7de89a9e0131b92cb6.tar.xz
typenunit.pas: tGroeszenVerdopplungsTransformation hatte falsche wertZuPositionAufAchse und vice versa
-rw-r--r--epost.lps77
-rw-r--r--typenunit.pas36
2 files changed, 62 insertions, 51 deletions
diff --git a/epost.lps b/epost.lps
index 78ec623..18ac011 100644
--- a/epost.lps
+++ b/epost.lps
@@ -24,8 +24,8 @@
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="2"/>
- <TopLine Value="5296"/>
- <CursorPos Y="5323"/>
+ <TopLine Value="5347"/>
+ <CursorPos Y="5372"/>
<UsageCount Value="201"/>
<Loaded Value="True"/>
</Unit2>
@@ -42,8 +42,8 @@
<Filename Value="typenunit.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="9"/>
- <TopLine Value="2839"/>
- <CursorPos X="28" Y="2857"/>
+ <TopLine Value="2891"/>
+ <CursorPos X="15" Y="2909"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit4>
@@ -85,7 +85,7 @@
<EditorIndex Value="6"/>
<TopLine Value="86"/>
<CursorPos X="26" Y="115"/>
- <UsageCount Value="47"/>
+ <UsageCount Value="50"/>
<Loaded Value="True"/>
</Unit9>
<Unit10>
@@ -93,7 +93,7 @@
<IsPartOfProject Value="True"/>
<EditorIndex Value="7"/>
<CursorPos X="3" Y="2"/>
- <UsageCount Value="43"/>
+ <UsageCount Value="46"/>
<Loaded Value="True"/>
</Unit10>
<Unit11>
@@ -211,123 +211,122 @@
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="typenunit.pas"/>
- <Caret Line="286" Column="23" TopLine="257"/>
+ <Caret Line="375" Column="36" TopLine="347"/>
</Position1>
<Position2>
<Filename Value="typenunit.pas"/>
- <Caret Line="327" Column="23" TopLine="298"/>
+ <Caret Line="417" Column="36" TopLine="416"/>
</Position2>
<Position3>
<Filename Value="typenunit.pas"/>
- <Caret Line="406" Column="23" TopLine="379"/>
+ <Caret Line="440" Column="36" TopLine="415"/>
</Position3>
<Position4>
<Filename Value="typenunit.pas"/>
- <Caret Line="566" Column="24" TopLine="537"/>
+ <Caret Line="452" Column="36" TopLine="423"/>
</Position4>
<Position5>
<Filename Value="typenunit.pas"/>
- <Caret Line="669" Column="23" TopLine="640"/>
+ <Caret Line="517" Column="36" TopLine="488"/>
</Position5>
<Position6>
<Filename Value="typenunit.pas"/>
- <Caret Line="719" Column="45" TopLine="690"/>
+ <Caret Line="567" Column="36" TopLine="538"/>
</Position6>
<Position7>
<Filename Value="typenunit.pas"/>
- <Caret Line="833" Column="45" TopLine="804"/>
+ <Caret Line="585" Column="36" TopLine="556"/>
</Position7>
<Position8>
<Filename Value="typenunit.pas"/>
- <Caret Line="875" Column="41" TopLine="846"/>
+ <Caret Line="598" Column="36" TopLine="569"/>
</Position8>
<Position9>
- <Filename Value="typenunit.pas"/>
- <Caret Line="931" Column="19" TopLine="902"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="5379" Column="62" TopLine="5347"/>
</Position9>
<Position10>
- <Filename Value="typenunit.pas"/>
- <Caret Line="994" Column="40" TopLine="965"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="185" Column="33" TopLine="169"/>
</Position10>
<Position11>
<Filename Value="typenunit.pas"/>
- <Caret Line="1140" Column="43" TopLine="1111"/>
+ <Caret Line="2201" Column="48" TopLine="2199"/>
</Position11>
<Position12>
<Filename Value="typenunit.pas"/>
- <Caret Line="1346" Column="28" TopLine="1317"/>
</Position12>
<Position13>
<Filename Value="typenunit.pas"/>
- <Caret Line="1368" Column="32" TopLine="1339"/>
+ <Caret Line="375" Column="36" TopLine="347"/>
</Position13>
<Position14>
<Filename Value="typenunit.pas"/>
- <Caret Line="1370" Column="19" TopLine="1341"/>
+ <Caret Line="417" Column="36" TopLine="388"/>
</Position14>
<Position15>
<Filename Value="typenunit.pas"/>
- <Caret Line="1412" Column="33" TopLine="1383"/>
+ <Caret Line="440" Column="36" TopLine="411"/>
</Position15>
<Position16>
<Filename Value="typenunit.pas"/>
- <Caret Line="1414" Column="19" TopLine="1385"/>
+ <Caret Line="452" Column="36" TopLine="423"/>
</Position16>
<Position17>
<Filename Value="typenunit.pas"/>
- <Caret Line="1438" Column="39" TopLine="1409"/>
+ <Caret Line="517" Column="36" TopLine="488"/>
</Position17>
<Position18>
<Filename Value="typenunit.pas"/>
- <Caret Line="1443" Column="39" TopLine="1414"/>
+ <Caret Line="567" Column="36" TopLine="538"/>
</Position18>
<Position19>
<Filename Value="typenunit.pas"/>
- <Caret Line="1445" Column="19" TopLine="1416"/>
+ <Caret Line="585" Column="36" TopLine="556"/>
</Position19>
<Position20>
<Filename Value="typenunit.pas"/>
- <Caret Line="1484" Column="33" TopLine="1455"/>
+ <Caret Line="598" Column="36" TopLine="569"/>
</Position20>
<Position21>
<Filename Value="typenunit.pas"/>
- <Caret Line="1486" Column="19" TopLine="1457"/>
+ <Caret Line="2201" Column="48" TopLine="2190"/>
</Position21>
<Position22>
<Filename Value="typenunit.pas"/>
- <Caret Line="1537" Column="31" TopLine="1508"/>
+ <Caret Line="2216" Column="52" TopLine="2190"/>
</Position22>
<Position23>
<Filename Value="typenunit.pas"/>
- <Caret Line="1539" Column="19" TopLine="1510"/>
+ <Caret Line="2306" Column="53" TopLine="2301"/>
</Position23>
<Position24>
<Filename Value="typenunit.pas"/>
- <Caret Line="1544" Column="43" TopLine="1515"/>
+ <Caret Line="2403" Column="51" TopLine="2395"/>
</Position24>
<Position25>
<Filename Value="typenunit.pas"/>
- <Caret Line="1553" Column="35" TopLine="1524"/>
+ <Caret Line="2411" Column="45" TopLine="2395"/>
</Position25>
<Position26>
<Filename Value="typenunit.pas"/>
- <Caret Line="1574" Column="31" TopLine="1545"/>
+ <Caret Line="2486" Column="50" TopLine="2478"/>
</Position26>
<Position27>
<Filename Value="typenunit.pas"/>
- <Caret Line="1682" Column="33" TopLine="1653"/>
+ <Caret Line="2915" Column="94" TopLine="2891"/>
</Position27>
<Position28>
<Filename Value="typenunit.pas"/>
- <Caret Line="1789" Column="35" TopLine="1760"/>
+ <Caret Line="2939" Column="16" TopLine="2913"/>
</Position28>
<Position29>
<Filename Value="typenunit.pas"/>
- <Caret Line="2345" TopLine="2312"/>
+ <Caret Line="2904" Column="14" TopLine="2886"/>
</Position29>
<Position30>
- <Filename Value="typenunit.pas"/>
- <Caret Line="2857" Column="28" TopLine="2839"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="6048" Column="36" TopLine="6349"/>
</Position30>
</JumpHistory>
<RunParams>
diff --git a/typenunit.pas b/typenunit.pas
index 8fbe9d8..b0b268f 100644
--- a/typenunit.pas
+++ b/typenunit.pas
@@ -2857,6 +2857,8 @@ begin
fuegeVorgaengerHinzu(vorg);
_horizontal:=hor;
_vertikal:=ver;
+ aktualisiereXsTs;
+ aktualisiereAchsen;
end;
procedure tGroeszenVerdopplungsTransformation.wHorizontal(h: boolean);
@@ -2893,21 +2895,27 @@ end;
function tGroeszenVerdopplungsTransformation.wertZuPositionAufAchse(const l: tLage; x: extended; auszerhalbIstFehler: boolean = true): extended;
var
- extra: extended;
+ extra,faktor: extended;
begin
if auszerhalbIstFehler then
testeAuszerhalb(false,false,l,x);
if (((l in [lOben,lUnten]) and horizontal) or // wenn in der abgefragten Richtung
- ((l in [lLinks,lRechts]) and vertikal)) and // verdoppelt wurde und
- (x > inAchsen[paralleleRichtung[l],'y']) then begin // der Wert in der 2. Hälfte liegt
+ ((l in [lLinks,lRechts]) and vertikal)) then begin // verdoppelt wurde
+ faktor:=0.5; // wird gestaucht
+ if x > inAchsen[paralleleRichtung[l],'y'] then begin // wenn der Wert in der 2. Hälfte liegt
// dann verschieben wir den Wert um die Hälfte
- x:=x-(inAchsen[paralleleRichtung[l],'y']-inAchsen[paralleleRichtung[l],'x']) * (1+1/(inXSTS[paralleleRichtung[l]]-1));
+ x:=x-(inAchsen[paralleleRichtung[l],'y']-inAchsen[paralleleRichtung[l],'x']) * (1+1/(inXSTS[paralleleRichtung[l]]-1));
// und addieren diese danach wieder
- extra:=inXSTS[paralleleRichtung[l]];
+ extra:=0.5;
+ end
+ else
+ extra:=0;
end
- else
+ else begin
extra:=0;
- result:=beliebigerVorgaenger.wertZuPositionAufAchse(l,x,auszerhalbIstFehler)+extra;
+ faktor:=1;
+ end;
+ result:=faktor*beliebigerVorgaenger.wertZuPositionAufAchse(l,x,auszerhalbIstFehler) + extra;
if auszerhalbIstFehler then
testeAuszerhalb(false,true,l,result);
end;
@@ -2919,16 +2927,20 @@ begin
if auszerhalbIstFehler then
testeAuszerhalb(false,true,l,x);
if (((l in [lOben,lUnten]) and horizontal) or // wenn in der abgefragten Richtung
- ((l in [lLinks,lRechts]) and vertikal)) and // verdoppelt wurde und
- (x >= inXSTS[paralleleRichtung[l]]) then begin // der Wert in der 2. Hälfte liegt
+ ((l in [lLinks,lRechts]) and vertikal)) then begin // verdoppelt wurde
+ x:=x*2; // wird gestreckt
+ if x>=1 then begin // wenn der Wert in der 2. Hälfte liegt
// dann verschieben wir den Wert um die Hälfte
- x:=x-inXSTS[paralleleRichtung[l]];
+ x:=x-1;
// und addieren diese danach wieder
- extra:=(inAchsen[paralleleRichtung[l],'y']-inAchsen[paralleleRichtung[l],'x'])*(1+1/(inXSTS[paralleleRichtung[l]]-1));
+ extra:=(inAchsen[paralleleRichtung[l],'y']-inAchsen[paralleleRichtung[l],'x'])*(1+1/(inXSTS[paralleleRichtung[l]]-1));
+ end
+ else
+ extra:=0;
end
else
extra:=0;
- result:=beliebigerVorgaenger.wertZuPositionAufAchse(l,x,auszerhalbIstFehler)+extra;
+ result:=beliebigerVorgaenger.wertZuPositionAufAchse(l,x,auszerhalbIstFehler) + extra;
if auszerhalbIstFehler then
testeAuszerhalb(false,false,l,result);
end;