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

看板R_Language作者 (=_=)時間8年前 (2015/12/09 22:31), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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 這裡要看你的「重合」是指四個角都在內部,或只有一個在就算 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.245.66 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1449671470.A.AC4.html

12/09 22:36, , 1F
感謝 您的方法很有用
12/09 22:36, 1F
文章代碼(AID): #1MQ3ikh4 (R_Language)
文章代碼(AID): #1MQ3ikh4 (R_Language)