找回密码
 立即注册
查看: 3187|回复: 1

重合矩形(矩形长宽比固定)面积计算

[复制链接]
发表于 2013-6-9 14:57:11 | 显示全部楼层 |阅读模式
请教各位高手:
在一个二维正交坐标系中,任意放置N个矩形(矩形长宽缩放比例一定,且放置过程中不存在倾斜、翻转等情况),N个矩形可以重叠。附件图片有张示意图以作说明(图中矩形一样,长为a, 宽为b, 长边与X轴平行,宽边与Y轴平行地 随机放置,各矩形允许重叠)



请问我该如何求 X0*Y0的面积 内,被这N个矩形所占面积的比例。

示意图

示意图



O(∩_∩)O谢谢!
回复

使用道具 举报

发表于 2013-6-11 09:39:09 | 显示全部楼层
和你前面问的题目一样的逻辑,随机投点
代码:
  1. percent<-function(x0=10,y0=20,a=5,b=4,rectangle_num=30,MonteCarlo_point_num=1000){
  2. rectangle_center_x=runif(rectangle_num)*x0
  3. rectangle_center_y=runif(rectangle_num)*y0
  4. randpoint_x=runif(MonteCarlo_point_num)*x0
  5. randpoint_y=runif(MonteCarlo_point_num)*y0
  6. point_num_in_rectangle=0
  7. for (i in 1:MonteCarlo_point_num){
  8. mark=0
  9. for(j in 1:rectangle_num){
  10. if((randpoint_x[i]-rectangle_center_x[j])<(a/2) && (randpoint_y[i]-rectangle_center_y[j])<(b/2)){
  11. mark=mark+1
  12. }
  13. }
  14. if(mark>0){
  15. point_num_in_rectangle=point_num_in_rectangle+1
  16. }
  17. }
  18. percent=point_num_in_rectangle/MonteCarlo_point_num
  19. return(percent)
  20. }
  21. percent(10,20,5,4,30,1000)
复制代码
多运行点,画图:
  1. result=0
  2. for(i in 1:100){result[i]<-percent(100,300,5,4,30,1000)}
  3. hist(result)
复制代码
请参考:
http://www.r-china.net/forum.php?mod=viewthread&tid=331
http://www.r-china.net/forum.php?mod=viewthread&tid=329
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-25 09:44 , Processed in 0.021154 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表