Reflection

Author

Eric W. Weisstein
November 15, 2005

This notebook downloaded from http://mathworld.wolfram.com/notebooks/PlaneGeometry/Reflection.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/Reflection.html.

©2005 Wolfram Research, Inc. except for portions noted otherwise

Initialization

<<Graphics`Arrow`

Figure

unit[v_]:=v/Sqrt[v.v]

v={.6,.4};
vv=Sqrt[v.v];
n={.2,.4};
Show[Graphics[{
{Black,Arrow[{0,0},v],
Dashing[{.02}],Line[{{0,0},v-unit[n]v.unit[n]}]},
{Blue,Arrow[v,v+.2unit[n]],
Dashing[{.02}],Line[{v-.8 unit[n],v}]},
{Red,Arrow[v,v+v-2(v.unit[n])unit[n]],
Dashing[{.02}],Line[{v-unit[n]v.unit[n],v+v-2(v.unit[n])unit[n]}]}
},AspectRatio->Automatic]]

Trilinears

?Reflection

Reflection[{(Subscript[α, 0]),(Subscript[β, 0]),(Subscript[γ, 0])},{(Subscript[α, 1]),(Subscript[β, 1]),(Subscript[γ, 1])}]

Derivation of Trilinear Line-in-Trilinear Line

int=Intersections[TrilinearLine[{l,m,n}],TrilinearLine[{ll,mm,nn}]]

Simplify[{nn,nn,-(ll+mm)}.{ll,mm,nn}]

foot=Simplify[Intersections[PerpendicularLine[TrilinearLine[{l,m,n}],apt={nn,nn,-(ll+mm)}],TrilinearLine[{l,m,n}]]]

rp=Reflection[{nn,nn,-(ll+mm)},foot]

Simplify[TrilinearLine[Line[int,rp]]]

FullSimplify[%]

Reflection[TrilinearLine[{ll_, mm_, nn_}], 
   TrilinearLine[{l_, m_, n_}]] := 
  TrilinearLine[{((-(ll + mm))*n + (l + m)*nn)*
     ((ll + mm)*(c*(l^2*ll - ll*m^2 + 2*l*m*mm) + 
        ll*(a*l + b*m)*n) - (b*l*(ll*(l + m) + 2*m*mm) + 
        c*(ll*m - l*(ll + 2*mm))*n - b*ll*n^2 + 
        a*(2*l^2*ll + l*m*(ll + 2*mm) - ll*(m^2 + n^2)))*
       nn - 2*(a + b)*l*n*nn^2 + 
      ((ll + mm)*n*(c*ll*m - 2*c*l*mm - b*ll*n) + 
        (c*m*(ll*m - l*(ll + 2*mm)) + 
          (b*l*ll - (2*a + b)*ll*m + 2*(a + b)*l*mm)*n)*
         nn + 2*(a + b)*l*m*nn^2)*Cos[A] - 
      (ll*(ll + mm)*n*(c*l + a*n) + 
        (c*l*((-ll)*m + l*(ll + 2*mm)) - a*ll*(l + m)*n)*
         nn - 2*(a + b)*l^2*nn^2)*Cos[B] + 
      ((-(ll + mm))*(2*c*l^2*mm + ll*(b*l + a*m)*n) + 
        (ll*(l + m)*(b*l + a*m) + 2*(a + b)*l^2*mm)*nn)*
       Cos[C]), ((ll + mm)*n - (l + m)*nn)*
     ((-(ll + mm))*(c*(2*l*ll*m - l^2*mm + m^2*mm) + 
        (a*l + b*m)*mm*n) + (a*m*(2*l*ll + (l + m)*mm) + 
        c*(l*mm - m*(2*ll + mm))*n - a*mm*n^2 + 
        b*(2*l*ll*m - l^2*mm + l*m*mm + 2*m^2*mm - 
          mm*n^2))*nn + 2*(a + b)*m*n*nn^2 + 
      (mm*(ll + mm)*n*(c*m + b*n) + 
        (c*m*(2*ll*m + (-l + m)*mm) - b*(l + m)*mm*n)*
         nn - 2*(a + b)*m^2*nn^2)*Cos[A] + 
      ((ll + mm)*n*(2*c*ll*m - c*l*mm + a*mm*n) + 
        (c*l*(2*ll*m + (-l + m)*mm) + 
          (-2*(a + b)*ll*m + (2*b*l + a*(l - m))*mm)*n)*
         nn - 2*(a + b)*l*m*nn^2)*Cos[B] + 
      ((ll + mm)*(2*c*ll*m^2 + (b*l + a*m)*mm*n) - 
        (2*(a + b)*ll*m^2 + (l + m)*(b*l + a*m)*mm)*nn)*
       Cos[C]), ((ll + mm)*n - (l + m)*nn)*
     (-2*c*(ll + mm)*(l*ll + m*mm)*n + 
      ((a*l*ll + 2*b*l*ll - b*ll*m - a*l*mm + 2*a*m*mm + 
          b*m*mm)*n + c*(ll + mm)*(l^2 + m^2 - 2*n^2))*
       nn + ((-(l - m))*(b*l - a*m) + c*(l + m)*n + 
        (a + b)*n^2)*nn^2 + (2*c*mm*(ll + mm)*n^2 + 
        n*(c*m*(ll + mm) + (b*ll - (2*a + b)*mm)*n)*nn - 
        (l + m)*(c*m + b*n)*nn^2)*Cos[A] + 
      (2*c*ll*(ll + mm)*n^2 + n*(c*l*(ll + mm) + 
          ((-(a + 2*b))*ll + a*mm)*n)*nn - 
        (l + m)*(c*l + a*n)*nn^2)*Cos[B] + 
      (2*c*(ll + mm)*(ll*m*n + l*mm*n - l*m*nn) + 
        nn*((b*l*ll - a*ll*m - 2*b*ll*m - 2*a*l*mm - 
            b*l*mm + a*m*mm)*n - (l - m)*(b*l - a*m)*nn))*
       Cos[C])}]

Show[Graphics[{
{Yellow,Sides[t,1]},
t,
{Red,EulerLine[t]},
{Orange,r=Reflection[TrilinearLine[EulerLine],TrilinearLine[{1,0,0}]][t]},
TrilinearLine[{1,.0001,.001}][t],
PointSize[.03],
Cartesian[(apt/.Thread[{l,m,n}->TrilinearLine[EulerLine][[1]]]/.Thread[{ll,mm,nn}->{1,0,0}])[t]],{Blue,Cartesian[(int/.Thread[{l,m,n}->TrilinearLine[EulerLine][[1]]]/.Thread[{ll,mm,nn}->{1,0,0}])[t]]},
{Red,Cartesian[(foot/.Thread[{l,m,n}->TrilinearLine[EulerLine][[1]]]/.Thread[{ll,mm,nn}->{1,0,0}])[t]]},
{Orange,Cartesian[(rp/.Thread[{l,m,n}->TrilinearLine[EulerLine][[1]]]/.Thread[{ll,mm,nn}->{1,0,0}])[t]]}
}],AspectRatio->Automatic,PlotRange->{{-1.5,2},{-1.5,2}}]