R语言,求代码 求解两个圆的交点坐标

有卖直欲倾家资 |浏览11809次
2018/12/28 14:27
收藏关注

满意回答

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

仅适用于不是水平或者垂直的情况 你找个数代代 懒得分类讨论了 其他的你自己写写吧

Dalpywnoy

其他回答(0)    我来补答
0人关注该问题
+1
 加载中...