R画丘比特之箭
用Base Plot画丘比特之箭,核心是有两点,一是爱心的参数方程,二是点的坐标要明确
这里选择的爱心参数方程是:
x=16(sin(t))^3
y=13cos(t)-5cos(2t)-2cos(3t)-cos(4t)
t <- seq(0, 360, 10) / 180 * pi x <- 16*(sin(t))^3 y <- 13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t)#运用参数方程产生绘制爱心的坐标(x,y)集,产生爱心1 x2<-x-12*cos(pi/6) y2<-y-12*sin(pi/6)#将(x,y)沿向量(-cos(pi/6),-sin(pi/6))的方向平移12个单位,实际上就是通过平移产生爱心2
plot.new() plot.window(c(-40,40), c(-40,40)) arrows(x0=-35*cos(pi/6),y0=-35*sin(pi/6), x1=30*cos(pi/6),y1=30*sin(pi/6),angle=30,code=2,col="red",lwd=2)#通过arrows()函数绘制箭头及箭身 segments(x0=-35*cos(pi/6),x1=-35*cos(pi/6)-6, y0=-35*sin(pi/6),y1=-35*sin(pi/6),col="red",lwd=4) segments(x0=-35*cos(pi/6)-6*cos(pi/3),x1=-35*cos(pi/6), y0=-35*sin(pi/6)-7*sin(pi/3),y1=-35*sin(pi/6),col="red",lwd=4)#通过两个segments()函数绘制箭尾 xspline(x, y, col = "pink", open = FALSE, shape = 2, border = "red")#添加爱心1,当然也可以通过polygon()函数绘制 xspline(x2, y2, col = "pink", open = FALSE, shape = 2, border = "red")#添加爱心2
效果如下图:

浙公网安备 33010602011771号