如何在图上画半圆?

How to draw a half circle on a plot?

我正在尝试使用 R 中的三角函数在绘图上绘制一些半圆。 这就是我所拥有的:

matPoints <<- as.data.frame(cbind(X=c(-1, -(sqrt(3)/2), -(sqrt(2)/2), -0.5, 0, 0.5, sqrt(2)/2, sqrt(3)/2, 1), Y=c(0, 0.5, sqrt(2)/2, sqrt(3)/2, 1, sqrt(3)/2, sqrt(2)/2, 0.5, 0)))

plot(x = matPoints$X*W, y = matPoints$Y*W)

目前,它打印图上的每个点。我想在这里做的是在点之间描绘一条平滑的线,这样它就会给我一个漂亮的半圆,圆心为 (0, 0),比例为 W。

有什么解决办法吗?

你是这个意思吗?

x <- seq(0, pi, length.out = 500)
W <- 3
plot(cos(x) * W, sin(x) * W, type = "l")

由于圆的一般方程是x^2 + y^2 = r^2,你也可以像下面这样模拟,

r=3 # radius
x <- seq(-r,r,0.01)
y  <- sqrt(r^2 - x^2)

plot(x,y,type="l")
# plot(c(x,x),c(y,-y),type="l") for a full circle.

给予,

这是另一种使用复数的可能性,polygon 绘制一个封闭的形状。

plot(NA, xlim=c(-2,2), ylim=c(-2,2))
polygon(1i^(seq(0,2,l=100)))

使用此方法您可以轻松更改中心、比例、旋转、填充颜色等:

plot(NA, xlim=c(-2,2), ylim=c(-2,2))
polygon(2*(1i^(seq(0,2,l=100)))*1i^.5 + .1-.3i, col="red")
polygon(1i^(seq(0,2,l=100)), col="blue")