Investigating SymmetriesBy Russell Blyth (based on a worksheet by Dorothy Zeiser)Click this button first:use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
restart: with(plots): with(plottools):with(LinearAlgebra):
colors := [green,blue,red,cyan,yellow,magenta,coral,violet,orange,sienna,navy,brown,aquamarine,gold,maroon,khaki]:
lcolors := [COLOR(RGB,.5,1,.5),COLOR(RGB,.5,.5,1),COLOR(RGB,1,.5,.5),COLOR(RGB,.5,1,1),COLOR(RGB,1,1,.5),COLOR(RGB,1,.5,1),COLOR(RGB,1,0.7490196100,.5),COLOR(RGB,0.6549019600,0.5921568650,0.6549019600),COLOR(RGB,.9,0.5980392150,0.5980392150),COLOR(RGB,0.7784313750,0.7098039200,0.5686274500),COLOR(RGB,0.5686274500,0.5686274500,0.7784313750),COLOR(RGB,0.8235294100,0.5823529400,0.5823529400),COLOR(RGB,0.7196078450,0.9294117650,0.7882352950),COLOR(RGB,.9,0.7490196100,0.5980392150),COLOR(RGB,0.7784313750,0.5686274500,0.7098039200),COLOR(RGB,0.8117647050,0.8117647050,0.6862745100)]:
nGon := n -> [seq(<cos((4*i+2-n)*Pi/(2*n)),sin((4*i+2-n)*Pi/(2*n))>,i=0..(n-1))]:
rotmat := alpha -> <<cos(alpha), sin(alpha)> | <-sin(alpha), cos(alpha)>>:
multmatbylist :=(multmat, listofvecs)->
map((x,y)-> y.x,listofvecs,multmat):
rotateObj := (listoflistofvecs,ang) -> seq(multmatbylist(rotmat(ang),listoflistofvecs[i]),i=1..nops(p)):
AnimRotate := proc(l,ang)
local NumSteps:
NumSteps := max(ceil(36*abs(ang)/Pi),1):
display([seq(display([pointplot(<0,0>,color = black, thickness = 5),seq(pointplot(l[i],color = lcolors[i], thickness = 5,connect=true),i=1..nops(p)),seq(pointplot(multmatbylist(rotmat((counta/NumSteps)*ang),l[i]),color=colors[i],connect=true,thickness=5),i=1..nops(p))]), counta=0..NumSteps)],scaling=constrained, axes=none,insequence = true)
end proc:
refinxmat := alpha -> <<1,0,0>|<0,cos(alpha),sin(alpha)>|<0,-sin(alpha),cos(alpha)>>:
chbasis := theta -> <<cos(theta),sin(theta),0>|<-sin(theta),cos(theta),0>|<0,0,1>>:
refmat := (theta,alpha) -> chbasis(theta).refinxmat(alpha).(chbasis(theta))^(-1):
projembmultmatbylist :=(multmat, listofvecs)->
map((x,y)-> <(y.<x[1],x[2],0>)[1],(y.<x[1],x[2],0>)[2]>,listofvecs,multmat):
reflectObj := (listoflistofvecs,ang) -> seq(projembmultmatbylist(refmat(ang,Pi),listoflistofvecs[i]),i=1..nops(p)):
AnimReflect := proc(l,ang)
display([seq(display([plot([cos(ang)*t,sin(ang)*t,t=-1.1..1.1],linestyle=DOT,thickness=2,color=black),seq(pointplot(l[i],color = lcolors[i], thickness = 5,connect=true),i=1..nops(p)),seq(pointplot(projembmultmatbylist(refmat(ang,(counta/18)*Pi),l[i]),color=colors[i],connect=true,thickness=5),i=1..nops(p))]), counta=0..18)], insequence = true,scaling=constrained,axes=none)
end proc:
end use;
Use this button to clear graphs: use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
DocumentTools[SetProperty]('Plot0', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot1', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot2', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot3', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot4', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot5', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot6', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot7', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot8', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot9', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot10', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot11', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot12', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot13', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot14', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot15', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot16', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot17', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot18', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot19', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot20', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot21', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot22', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot23', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot24', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot25', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot26', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot27', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot28', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot30', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot31', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot32', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot33', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot34', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot35', 'value', plot(x,x=-1..1,color=white,axes=none));
end use;
Outline1. Investigate the symmetries of an equilateral triangle visually.
2. Investigate the composition of two transformations visually.LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSgyRH5NYXRoRicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQ=Symmetries of an equilateral triangleIn this section we investigate the symmetries of an equilateral triangle. Start by obtaining a sketch of the triangle.LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSgyRH5NYXRoRicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQ=use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
p := nGon(3):
for i from 1 to (nops(p)-1) do
l[i] := [p[i],p[i+1]]
end do:
l[nops(p)] := [p[nops(p)],p[1]]:
for i from 1 to nops(p) do
lp[i] := pointplot(l[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot0', 'value', display([seq(lp[i],i=1..nops(p))],scaling=constrained,axes=none));
end use;
LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSgyRH5NYXRoRicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQ=LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnDisplay the symmetries of the triangle.LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSgyRH5NYXRoRicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQ=LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSgyRH5NYXRoRicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQ=RotationsThe triangle has three distinct rotation symmetries, corresponding to rotations of zero ("do nothing"), one third of a turn and two thirds of a turn. A full turn produces the same result as "do nothing".use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
l0 := rotateObj(l,0):
for i from 1 to nops(p) do
lp0[i] := pointplot(l0[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot1', 'value', display([seq(lp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot2', 'value', display([seq(lp0[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot30', 'value', display([seq(lp0[i],i=1..nops(p))],scaling=constrained,axes=none));end use;
use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
l1 := rotateObj(l,2*Pi/3):
for i from 1 to nops(p) do
lp1[i] := pointplot(l1[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot3', 'value', display([seq(lp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot4', 'value', display([seq(lp1[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot5', 'value', AnimRotate(l,2*Pi/3));
DocumentTools[SetProperty]('Plot31', 'value', display([seq(lp1[i],i=1..nops(p))],scaling=constrained,axes=none));
end use;
(Use the menu bar controls to play the animation after clicking on it)
LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnOriginal triangleLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnRotated triangleLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnAnimation of rotation
use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
l2 := rotateObj(l,4*Pi/3):
for i from 1 to nops(p) do
lp2[i] := pointplot(l2[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot6', 'value', display([seq(lp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot7', 'value', display([seq(lp2[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot8', 'value', AnimRotate(l,4*Pi/3));
DocumentTools[SetProperty]('Plot32', 'value', display([seq(lp2[i],i=1..nops(p))],scaling=constrained,axes=none));
end use;
LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnOriginal triangleLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnRotated triangleLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnAnimation of rotation
ReflectionsThe triangle has three distinct reflections, with lines of symmetry from each vertex to the midpoint of the opposite side.use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
l3 := reflectObj(l,Pi/2):
for i from 1 to nops(p) do
lp3[i] := pointplot(l3[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot9', 'value', display([seq(lp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot10', 'value', display([seq(lp3[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot11', 'value', AnimReflect(l,Pi/2));
DocumentTools[SetProperty]('Plot33', 'value', display([seq(lp3[i],i=1..nops(p))],scaling=constrained,axes=none));
end use;
LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnOriginal triangleLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnReflected triangleLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnAnimation of reflection
use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
l4 := reflectObj(l,Pi/6):
for i from 1 to nops(p) do
lp4[i] := pointplot(l4[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot12', 'value', display([seq(lp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot13', 'value', display([seq(lp4[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot14', 'value', AnimReflect(l,Pi/6));
DocumentTools[SetProperty]('Plot34', 'value', display([seq(lp4[i],i=1..nops(p))],scaling=constrained,axes=none));
end use;
LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnOriginal triangleLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnReflected triangleLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnAnimation of reflection
use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
l5 := reflectObj(l,5*Pi/6):
for i from 1 to nops(p) do
lp5[i] := pointplot(l5[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot15', 'value', display([seq(lp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot16', 'value', display([seq(lp5[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot17', 'value', AnimReflect(l,5*Pi/6));
DocumentTools[SetProperty]('Plot35', 'value', display([seq(lp5[i],i=1..nops(p))],scaling=constrained,axes=none));
end use;
LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnOriginal triangleLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnReflected triangleLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnAnimation of reflection
Composition of symmetriesWe next investigate the effect of a composition of symmetries.Example: Apply a rotation of one third of a turn followed a reflection in the vertical axis. Then apply the symmetries in the reverse order.use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
l1 := rotateObj(l,2*Pi/3):
for i from 1 to nops(p) do
lp1[i] := pointplot(l1[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot18', 'value', display([seq(lp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot19', 'value', display([seq(lp1[i],i=1..nops(p))],scaling=constrained,axes=none));
end use;
use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
rr1 := reflectObj([l1],Pi/2):
for i from 1 to nops(p) do
rr1p[i] := pointplot(rr1[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot20', 'value', display([seq(rr1p[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot21', 'value', display([AnimRotate(l,2*Pi/3),AnimReflect([l1],Pi/2)],insequence=true));
end use;
LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnOriginal triangleLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnRotated triangleLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnReflection of rotation
LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnAnimation of reflection of rotation
use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
l3 := reflectObj(l,Pi/2):
for i from 1 to nops(p) do
lp3[i] := pointplot(l3[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot22', 'value', display([seq(lp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot23', 'value', display([seq(lp3[i],i=1..nops(p))],scaling=constrained,axes=none));
end use;
use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
rr2 := rotateObj([l3],2*Pi/3):
for i from 1 to nops(p) do
rr2p[i] := pointplot(rr2[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot24', 'value', display([seq(rr2p[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot25', 'value', display([AnimReflect(l,Pi/2),AnimRotate([l3],2*Pi/3)],insequence=true));
end use;
LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnOriginal triangleLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnReflected triangleLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnRotation of reflection
LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnRotation by 2*Pi/3 of reflected triangle
Note that the order of composition makes a difference!Workbench sectionIn this section you may experiment with compositions of the symmetries of the equilateral triangle. Clicking on a symmetry button applies that symmetry to the previous orientation of the triangle. Click on the Start/Reset button to start over.use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
ll := rotateObj(l,0):
lc := rotateObj(l,0):
for i from 1 to nops(p) do
lcp[i] := pointplot(lc[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot26', 'value', display([seq(lp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('Plot27', 'value', plot(x,x=-1..1,color=white,axes=none));
DocumentTools[SetProperty]('Plot28', 'value', display([seq(lcp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('TextArea0', 'value', "");
end use;
use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
ll := rotateObj([lc],0):
for i from 1 to nops(p) do
llp[i] := pointplot(ll[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot27', 'value', display([seq(llp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('TextArea0', 'value', cat(DocumentTools[GetProperty]('TextArea0', 'value'),"Rotate by zero\n"));
end use;
use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
ll := rotateObj([lc],0):
for i from 1 to nops(p) do
llp[i] := pointplot(ll[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot27', 'value', display([seq(llp[i],i=1..nops(p))],scaling=constrained,axes=none));
lc := rotateObj([ll],2*Pi/3):
for i from 1 to nops(p) do
lcp[i] := pointplot(lc[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot28', 'value', display([seq(lcp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('TextArea0', 'value', cat(DocumentTools[GetProperty]('TextArea0', 'value'),"Rotate by 2*Pi/3\n"));
end use;
use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
ll := rotateObj([lc],0):
for i from 1 to nops(p) do
llp[i] := pointplot(ll[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot27', 'value', display([seq(llp[i],i=1..nops(p))],scaling=constrained,axes=none));
lc := rotateObj([ll],4*Pi/3):
for i from 1 to nops(p) do
lcp[i] := pointplot(lc[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot28', 'value', display([seq(lcp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('TextArea0', 'value', cat(DocumentTools[GetProperty]('TextArea0', 'value'),"Rotate by 4*Pi/3\n"));
end use;
use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
ll := rotateObj([lc],0):
for i from 1 to nops(p) do
llp[i] := pointplot(ll[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot27', 'value', display([seq(llp[i],i=1..nops(p))],scaling=constrained,axes=none));
lc := reflectObj([ll],Pi/2):
for i from 1 to nops(p) do
lcp[i] := pointplot(lc[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot28', 'value', display([seq(lcp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('TextArea0', 'value', cat(DocumentTools[GetProperty]('TextArea0', 'value'),"Reflect in vertical axis\n"));
end use;
use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
ll := rotateObj([lc],0):
for i from 1 to nops(p) do
llp[i] := pointplot(ll[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot27', 'value', display([seq(llp[i],i=1..nops(p))],scaling=constrained,axes=none));
lc := reflectObj([ll],Pi/6):
for i from 1 to nops(p) do
lcp[i] := pointplot(lc[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot28', 'value', display([seq(lcp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('TextArea0', 'value', cat(DocumentTools[GetProperty]('TextArea0', 'value'),"Reflect in axis at angle Pi/6\n"));
end use;
use DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
ll := rotateObj([lc],0):
for i from 1 to nops(p) do
llp[i] := pointplot(ll[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot27', 'value', display([seq(llp[i],i=1..nops(p))],scaling=constrained,axes=none));
lc := reflectObj([ll],5*Pi/6):
for i from 1 to nops(p) do
lcp[i] := pointplot(lc[i],color = colors[i], thickness = 5,connect=true):
end do:
DocumentTools[SetProperty]('Plot28', 'value', display([seq(lcp[i],i=1..nops(p))],scaling=constrained,axes=none));
DocumentTools[SetProperty]('TextArea0', 'value', cat(DocumentTools[GetProperty]('TextArea0', 'value'),"Reflect in axis at angle 5*Pi/6\n"));
end use;
LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnOriginal positionLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnPrevious positionLUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnCurrent position
History of symmetriesuse DocumentTools in
# Enter Maple commands to be executed when the specified
# action is carried out on the component.
# Use:
# GetProperty( component_name, attribute_name )
# and
# SetProperty( component_name, attribute_name, value )
# to access any of the attributes of the component.
# See ?CustomizingComponents for more information.
end use;
LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSgyRH5NYXRoRicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQ=LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnOriginalPositionLUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSgyRH5NYXRoRicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQ=LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnRotation of1/3 turnLUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSgyRH5NYXRoRicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQ=LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnRotation of2/3 turnLUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSgyRH5NYXRoRicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQ=LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnReflection in vertical axisLUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSgyRH5NYXRoRicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQ=LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnReflection in axis at Pi/6LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSgyRH5NYXRoRicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQ=LUklUExPVEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYnLUknQ1VSVkVTR0YkNiM3UzckJCEiIiIiIUYuNyQkITNvbW1tO3AwayYqISM9RjI3JCQhM3ZLTCQzPFhaPSpGNEY2NyQkITNtbW1tVCVwImUoKUY0Rjk3JCQhMzptbW0iNG0oRyQpRjRGPDckJCEzIlFMTDNpLjkhekY0Rj83JCQhMyJvbW1UIVI9MHZGNEZCNyQkITN1KioqKlxQOCNcNChGNEZFNyQkITMqcG1tVD9GMW4nRjRGSDckJCEzWysrXSh5JHBaaUY0Rks3JCQhMzNMTEwkeWFFImVGNEZONyQkITNobW1tIj5zJUhhRjRGUTckJCEzUSsrK10kKjQpKlxGNEZUNyQkITM4KysrXV8mXGMlRjRGVzckJCEzMCsrK10xYVpURjRGWjckJCEzdW1tOy8jKVtvUEY0RmduNyQkITNoTExMJD1leEokRjRGam43JCQhMylSTExMdElmJEhGNEZdbzckJCEzXSsrXVBZeCJcI0Y0RmBvNyQkITNFTUxMTDdpKTQjRjRGY283JCQhM2MqKioqXFAncHNtIkY0RmZvNyQkITMnKSoqKipcNzRfYzdGNEZpbzckJCEzKTNMTEwzeCV6IykhIz5GXHA3JCQhM0tNTEwzcyRRTSVGXnBGYHA3JCQhM1xeb21tO3pyKSohI0BGY3A3JCQiMyVwSkwkZXp3NVZGXnBGZ3A3JCQiM3MqKSoqKlxQUSNcIilGXnBGanA3JCQiM0dLTExlIipbSDdGNEZdcTckJCIzSCoqKioqKipwdnhsIkY0RmBxNyQkIjMjeioqKipcX3FuMiNGNEZjcTckJCIzVSkqKipcaSZwQFsjRjRGZnE3JCQiM0EpKioqKlwyJ0hLSEY0RmlxNyQkIjNFbG1tbVp2T0xGNEZccjckJCIzaCoqKioqKlwyZ29QRjRGX3I3JCQiM1VLTCRlUjwqZlRGNEZicjckJCIzbCoqKioqKlwpSHhlJUY0RmVyNyQkIjNja207SCFvLSpcRjRGaHI3JCQiM3kpKioqXDdrLjZhRjRGW3M3JCQiMyNlbW1tVDlDI2VGNEZeczckJCIzMioqKipcaSEqM2BpRjRGYXM3JCQiMyVRTExMJCp6eW0nRjRGZHM3JCQiM3dLTEwzTjEjNChGNEZnczckJCIzTW1tO0hZdDd2RjRGanM3JCQiM1kqKioqKioqcChHKip5RjRGXXQ3JCQiM11tbW1UNktVJClGNEZgdDckJCIzZktMTExiZFEoKUY0RmN0NyQkIjNaKytdaWAxaCIqRjRGZnQ3JCQiM1crK11QP1dsJipGNEZpdDckJCIiIkYwRlx1LUknQ09MT1VSR0YkNiZJJFJHQkdGJEZddUZddUZddS1JK0FYRVNMQUJFTFNHRiQ2JFEieEYnUSFGJy1JKkFYRVNTVFlMRUdGJDYjSSVOT05FR0YkLUklVklFV0dGJDYkO0YuRlx1SShERUZBVUxUR0YnReflection in axis at 5*Pi/6