rm(list=ls()) require(animation) require(rv) par(bg = "white") plot(-20:20,-20:20,type="n",xlab="Ship's Y-Axis",ylab="Ship's Z-Axis") ShipFloatCenterXLoc<-0 ShipFloatCenterYLoc<-0 Beam<-8 Depth<-3 deltaTheta<-pi/8 h<-sqrt(((Beam/2)^2)+((Depth/2)^2)) Hull<-matrix(c(Beam/2,Depth/2,-Beam/2,Depth/2,-Beam/2,-Depth/2,Beam/2,-Depth/2), nrow = 4, ncol=2, byrow=TRUE) polygon(Hull,border="black",col="gray") ## set animation options oopt <- ani.options(interval = 0.2) v1<-c(-1,0,1,0,-1,0,1,0) v2<-c(0,-1,0,1,0,-1,0,1) ## use a loop to create images one by one for (k in 1:length(v1)) { for (j in seq(0.2,1,by=0.2)) { theta0<-atan(Depth/Beam) Xc1<-(h*cos(theta0+v1[k]*(j*pi/8)+v2[k]*((1*pi/8)-j*pi/8) )) Yc1<-(h*sin(theta0+v1[k]*(j*pi/8)+v2[k]*((1*pi/8)-j*pi/8) )) Xc2<-(h*cos((pi-theta0)+v1[k]*(j*pi/8)+v2[k]*((1*pi/8)-j*pi/8) )) Yc2<-(h*sin((pi-theta0)+v1[k]*(j*pi/8)+v2[k]*((1*pi/8)-j*pi/8) )) Xc3<-(h*cos((pi+theta0)+v1[k]*(j*pi/8)+v2[k]*((1*pi/8)-j*pi/8) )) Yc3<-(h*sin((pi+theta0)+v1[k]*(j*pi/8)+v2[k]*((1*pi/8)-j*pi/8) )) Xc4<-(h*cos((-theta0)+v1[k]*(j*pi/8)+v2[k]*((1*pi/8)-j*pi/8) )) Yc4<-(h*sin((-theta0)+v1[k]*(j*pi/8)+v2[k]*((1*pi/8)-j*pi/8) )) q<-rnorm(1, mean = 0, sd = 1) XWave<-seq(-20,20,by=0.4) YWave<-cos((1/2)*XWave+7*((j+k)*pi/8))+((XWave^2)/100)+q*(cos(XWave)) Hull<-matrix(c(Xc1,Yc1,Xc2,Yc2,Xc3,Yc3,Xc4,Yc4), nrow = 4, ncol=2, byrow=TRUE) plot(-20:20,-20:20,type="n",xlab="Ship's Y-Axis",ylab="Ship's Z-Axis") polygon(Hull,border="black",col="gray") lines(XWave,YWave,col="blue") par(new=FALSE) ani.pause() } }