怎么检测边界?

Write a program that enables the user to add and remove points in a two-dimensional plane dynamically, as shown in Figure 15.31a. A minimum bounding rectangle is updated as the points are
added and removed. Assume the radius of each point is 10 pixels.图片描述

在一个画布中,左键添加圆圈,如果圆圈不在画布内则扩大画布(rectangle)的范围;右键删除圆圈,如果删除的是边界上的则缩小画布范围。
问题是,如果要缩小,边界该怎么检测的?需要什么复杂的数据结构吗?

阅读 2.4k
1 个回答

把里边圆圈的位置 存储为一个有序数组(递增为例),删除添加都操作数组并重新排序

data = [
    {
        top:10,
        left:100
    }
    ...
]

数据如上,每次操作后分别查找最大和做小的值 就是边界

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题