summaryrefslogtreecommitdiff
path: root/typenunit.pas
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2017-12-12 13:39:49 +0100
committerErich Eckner <git@eckner.net>2017-12-12 13:39:49 +0100
commit395d51482b8434de790ffa7703a8990fff6315b6 (patch)
treed46c157794c0f306d2b2329af2b13776e0d178a2 /typenunit.pas
parentfd99b85a22059e22b7f98b1668fc6d0a60493d5c (diff)
downloadepost-395d51482b8434de790ffa7703a8990fff6315b6.tar.xz
epostunit.pas: skaliere neu
Diffstat (limited to 'typenunit.pas')
-rw-r--r--typenunit.pas51
1 files changed, 51 insertions, 0 deletions
diff --git a/typenunit.pas b/typenunit.pas
index 7a0a3e9..2fd1bf6 100644
--- a/typenunit.pas
+++ b/typenunit.pas
@@ -446,6 +446,18 @@ type
// keine Änderung der Achsenbegrenzungen, der Werte(skalierung)
function dumpParams: string; override;
end;
+ tLineareAchsenVerzerrTransformation = class (tKoordinatenTransformation)
+ private
+ procedure aktualisiereAchsen; override;
+ // keine Änderung der Punkt-Positionen
+ function transformiereAchseEinzeln(const l: tLage; x: extended; auszerhalbIstFehler: boolean = true): extended; override;
+ function transformiereAchseEinzelnInvers(const l: tLage; x: extended; auszerhalbIstFehler: boolean = true): extended; override;
+ // keine Änderung der Werte
+ public
+ fak: tExtPoint;
+ constructor create;
+ function dumpParams: string; override;
+ end;
tLambdaZuOmegaTransformation = class (tKoordinatenTransformation)
private
_faktor: extended;
@@ -2444,6 +2456,45 @@ begin
outXSTS[c]:=gr[c,'y']-gr[c,'x']+1;
end;
+// tLineareAchsenVerzerrTransformation *****************************************
+
+procedure tLineareAchsenVerzerrTransformation.aktualisiereAchsen;
+var
+ c,d: char;
+begin
+ for c:='x' to 'y' do
+ for d:='x' to 'y' do
+ outAchsen[c,d]:=inAchsen[c,d]*fak[c];
+end;
+
+function tLineareAchsenVerzerrTransformation.transformiereAchseEinzeln(const l: tLage; x: extended; auszerhalbIstFehler: boolean = true): extended;
+begin
+ result:=x*fak[paralleleRichtung[l]];
+ if auszerhalbIstFehler then
+ testeAuszerhalb(l,result);
+end;
+
+function tLineareAchsenVerzerrTransformation.transformiereAchseEinzelnInvers(const l: tLage; x: extended; auszerhalbIstFehler: boolean = true): extended;
+begin
+ if auszerhalbIstFehler then
+ testeAuszerhalb(l,x);
+ result:=x/fak[paralleleRichtung[l]];
+end;
+
+constructor tLineareAchsenVerzerrTransformation.create;
+var
+ c: char;
+begin
+ inherited create;
+ for c:='x' to 'y' do
+ fak[c]:=1;
+end;
+
+function tLineareAchsenVerzerrTransformation.dumpParams: string;
+begin
+ result:='* ' + tExtPointToStr(fak) + ' ' + inherited dumpParams;
+end;
+
// tLambdaZuOmegaTransformation ************************************************
constructor tLambdaZuOmegaTransformation.create;