diff options
author | Erich Eckner <git@eckner.net> | 2019-09-26 11:12:00 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2019-09-26 11:12:00 +0200 |
commit | ffa782d4ba9f307fe713db7de89a9e0131b92cb6 (patch) | |
tree | 1c828a6629c8c8349dc00ace3e45bf1a2265f769 | |
parent | f1b047d60a449c0b3131e2fc0269228281c824e4 (diff) | |
download | epost-ffa782d4ba9f307fe713db7de89a9e0131b92cb6.tar.xz |
typenunit.pas: tGroeszenVerdopplungsTransformation hatte falsche wertZuPositionAufAchse und vice versa
-rw-r--r-- | epost.lps | 77 | ||||
-rw-r--r-- | typenunit.pas | 36 |
2 files changed, 62 insertions, 51 deletions
@@ -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; |