Re: [問題] 如何判斷橢圓與矩形是否重疊?

作者: banyhong (=_=)   2015-12-09 22:31:08
※ 引述《girl5566 (5566520)》之銘言:
: 文章分類提示:
: - 問題: 當你想要問問題時,請使用這個類別
: [問題類型]:
: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
: [軟體熟悉度]:
: 新手(沒寫過程式,R 是我的第一次)
: [問題敘述]:
: 目前有很多個橢圓形和矩形,想濾掉橢圓形與矩形相重合的矩形,如代碼中的藍色矩形
: 不知道有什麼好方法可以做這件事情呢!?
: [程式範例]:
: d <- data.frame(x = c(8,5,2,5), y = c(5,9,5,1))
: plot(d,
: xlim=c(1, 10),
: ylim=c(1,20))
: bb <- data.frame(x = 1:10,y = 10:19)
: points(bb,col="blue")
: theta <- seq(0, 2 * pi, length=(30))
: x <- 100 + 50 * cos(theta)
: y <- 300 + 100 * sin(theta)
: plot(x, y, xlim=c(1, 500),
: ylim=c(1,500),type = "l")
: i <- 4*(0:10)
: rect(80, 280, 120, 320, col = "blue")
: rect(380, 280, 420, 320, col = "red")
: [環境敘述]:
:
: R 3.2.2 win7 64bit
: [關鍵字]:
:
如果你想問的是,用數學的角度判斷是否在橢圓內部
橢圓的方程式是 x^2 / a^2 + y^2 / b^2 < 1
e1 <- function(c) return((c[1]-100)^2/50^2 + (c[2]-300)^2/100^2 < 1)
# 這是矩形的四個角座標
r1 <- matrix(c(80,80,120,120,280,320,280,320),4)
# [,1] [,2]
# [1,] 80 280
# [2,] 80 320
# [3,] 120 280
# [4,] 120 320
apply(r1, 1, e1)
# [1] TRUE TRUE TRUE TRUE
這裡要看你的「重合」是指四個角都在內部,或只有一個在就算
作者: girl5566 (5566520)   2015-12-09 22:36:00
感謝 您的方法很有用

Links booklink

Contact Us: admin [ a t ] ucptt.com