2019/01/31 12:14
insec <- function(A, B, r1, r2) {
d <- sqrt((A[2]-B[2])^2+(A[1]-B[1])^2)
k1 <- (B[2]-A[2])/(B[1]-A[1])
k2 <- -1/k1
a <- (r1^2-r2^2+d^2)/(2*d)
b <- d-a
h <- sqrt(r1^2-a^2)
x0 <- A[1]+a/d*(B[1]-A[1])
y0 <- A[2]+a/d*(B[2]-A[2])
C1 <- c(x0-h/sqrt(1+k2^2), y0-h*k2)
C2 <- c(x0+h/sqrt(1+k2^2), y0+h*k2)
return(c(C1, C2))
}
A <- c(0, 0)
B <- c(1, 1)
insec(A, B, 1, 1)
r1 <- 1
r2 <- 1
仅适用于不是水平或者垂直的情况 你找个数代代 懒得分类讨论了 其他的你自己写写吧