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")