Come viene trasformato un triangolo se viene ruotato di 45° in verso orario e poi traslato in alto di 6 e se viene soggetto prima alla medesima traslazione e alla medesima rotazione (per i movimenti piani non vale la proprietà commutativa).

source("http://macosa.dima.unige.it/r.R")
HF=3; BF=3
#
PLANE(0,10,0,10)
xA=0; yA=0; xB=0; yB=3; xC=3; yC=3
polyline(c(xA,xB,xC,xA),c(yA,yB,yC,yA),"brown")
POINT(xA,yA,"blue"); POINT(xB,yB,"red"); POINT(xC,yC,"seagreen")
#
PLANE(0,10,0,10)
polyline(c(xA,xB,xC,xA),c(yA,yB,yC,yA),"brown")
BC=point_point(xB,yB, xC,yC)
AB=point_point(xB,yB, xA,yA)
AC=point_point(xA,yA, xC,yC)
arc(xA,yA, AC, 45,0, "black")
arc(xA,yA, AB, 90,45,"black")
xA1=xA; yA1=yA
xB1=RotPx(xB,yB, -45, 0,0); yB1=RotPy(xB,yB, -45, 0,0)
xC1=RotPx(xC,yC, -45, 0,0); yC1=RotPy(xC,yC, -45, 0,0)
polylin(c(xA1,xB1,xC1,xA1),c(yA1,yB1,yC1,yA1),"orange")
xA2=xA1; xB2=xB1; xC2=xC1; yA2=yA1+6; yB2=yB1+6; yC2=yC1+6
line(xA1,yA1, xA2,yA2, "black")
line(xB1,yB1, xB2,yB2, "black")
line(xC1,yC1, xC2,yC2, "black")
polyline(c(xA2,xB2,xC2,xA2),c(yA2,yB2,yC2,yA2),"brown")
Point(xA,yA,"blue"); Point(xB,yB,"red"); Point(xC,yC,"seagreen")
Point(xA1,yA1,"blue"); Point(xB1,yB1,"red"); Point(xC1,yC1,"seagreen")
POINT(xA2,yA2,"blue"); POINT(xB2,yB2,"red"); POINT(xC2,yC2,"seagreen")
#
PLANE(0,10,0,10)
polyline(c(xA,xB,xC,xA),c(yA,yB,yC,yA),"brown")
BC=point_point(xB,yB, xC,yC)
AB=point_point(xB,yB, xA,yA)
AC=point_point(xA,yA, xC,yC)
xA1=xA; xB1=xB; xC1=xC; yA1=yA+6; yB1=yB+6; yC1=yC+6
line(xA,yA, xA1,yA1, "black")
line(xB,yB, xB1,yB1, "black")
line(xC,yC, xC1,yC1, "black")
polylin(c(xA1,xB1,xC1,xA1),c(yA1,yB1,yC1,yA1),"orange")
AA1=point_point(xA,yA, xA1,yA1)
arc(xA,yA, AA1, 90,45,"black")
AB1=point_point(xA,yA, xB1,yB1)
arc(xA,yA, AB1, 90,45,"black")
AC1=point_point(xA,yA, xC1,yC1)
ang=atan(9/3)*180/pi
arc(xA,yA, AC1, ang,ang-45,"black")
xA2=RotPx(xA1,yA1, -45, 0,0); yA2=RotPy(xA1,yA1, -45, 0,0)
xB2=RotPx(xB1,yB1, -45, 0,0); yB2=RotPy(xB1,yB1, -45, 0,0)
xC2=RotPx(xC1,yC1, -45, 0,0); yC2=RotPy(xC1,yC1, -45, 0,0)
polyline(c(xA2,xB2,xC2,xA2),c(yA2,yB2,yC2,yA2),"brown")
Point(xA,yA,"blue"); Point(xB,yB,"red"); Point(xC,yC,"seagreen")
Point(xA1,yA1,"blue"); Point(xB1,yB1,"red"); Point(xC1,yC1,"seagreen")
POINT(xA2,yA2,"blue"); POINT(xB2,yB2,"red"); POINT(xC2,yC2,"seagreen")