First Letters of First and Last Name
x=c(rep(-0.5,500),seq(-1,0,length.out=500),
rep(0.5,500),sin(seq(pi*.17,pi*0.82,length.out=500)),sin(seq(pi*.17,pi*0.82,length.out=500)))
y=c(seq(-1,1,length.out=500),rep(1,500),
seq(-1,1,length.out=500),seq(1,0,length.out=500),seq(0,-1,length.out=500))
z=rbind(x,y)
plot(y~x, xlim=c(-3,3), ylim=c(-3,3), col='green')
Left Multiply
leftmulti = function(x,y){
x %*% y
}
leftmulti(matrix(rep(seq(2,5, length.out=3),3), nrow = 3, ncol = 3),diag(3))
## [,1] [,2] [,3]
## [1,] 2.0 2.0 2.0
## [2,] 3.5 3.5 3.5
## [3,] 5.0 5.0 5.0
Shearing
for (n in seq(0,1,length.out=15)) {
shear<-apply(z,2,function(x) leftmulti(x,matrix(c(1,n,0,1),nrow=2,ncol=2)))
plot(shear[2,]~shear[1,], xlim=c(-3,3), ylim=c(-3,3), col='red')
x11()
}
Scaling
for (n in seq(1,3,length.out=15)) {
scale<-apply(z,2,function(x) leftmulti(x,matrix(c(n,0,0,n),nrow=2,ncol=2)))
plot(scale[2,]~scale[1,], xlim=c(-3,3), ylim=c(-3,3), col='blue')
x11()
}
Rotation
for (n in seq(0,pi*2,length.out=15)) {
rotate<-apply(z,2,function(x) leftmulti(x,matrix(c(cos(n),sin(n),-sin(n),cos(n)),nrow=2,ncol=2)))
plot(rotate[2,]~rotate[1,], xlim=c(-3,3), ylim=c(-3,3), col='orange')
x11()
}
Projection
for (n in seq(0,2*pi,length.out=15)) {
alt=rbind(z,rep(0,ncol(z)))
projection<-apply(alt,2,function(x) leftmulti(x,matrix(c(1,0,0,0,cos(n),-sin(n),0,sin(n),cos(n)),nrow=3,ncol=3)))
plot(projection[2,]~projection[1,], xlim=c(-3,3), ylim=c(-3,3), col='purple')
x11()
}