liebe leute,
aus einer mma liste l welche verschiedene abbildungen von R2 auf R2 definiert werden mittels mma code mma funktionen
"automatisch" definiert. es stehen nach aufruf von DefineBaseFunctionSet[l, {x, y}] die folgende funktionen zur
verfügung: TranslationX,TranslationY,Magnification,Rotation,Anamorph0,Anamorph4
diese funktione sind soweit so gut anwendbar auf eine liste mit einem R2 punketpaar.
Beispielhaft wird AlternateRot[] als "händische" alternative zu Rotation[] definiert wie man sieht ist die MMA
definition der händischen definition "geradliniger" als die "automatische"
?AlternateRot liefert:
AlternateRot
AlternateRot[{x_, y_}] := {-y, x}
?Rotation liefert:
Rotation
Rotation[v$_] := {-y, x} /. MapThread[Rule[##1] & , {{x, y}, v$}]
F R A G E:
wie bringe ich die "automatische" version dazu die "geradlinige" definition zu erzeugen ?
l.g. robert
MMA code ab hier unterhalb folgend:
l = {
{TranslationX, {1, 0}},
{TranslationY, {0, 1}},
{Magnification, {x, y}},
{Rotation, {-y,x}},
{Anamorph0, {x, -y}},
{Anamorph4, {y, x}}
};
DefineBaseFunction[FnName_, Expr_, Vars_] := FnName[v_] := Expr /. MapThread[Rule[##1] &, {Vars, v}]
DefineBaseFunctionSet[FnList_, Vars_] := ((DefineBaseFunction[Sequence @@ #1, Vars] &) /@ FnList;)
DefineBaseFunctionSet[l, {x, y}]
AlternateRot[{x_, y_}] := {-y, x}
?AlternateRot
?Rotation