我有一个点网格(例如(1,1),(1,2),(1,3)…(100,99),(100100)),它包含在pandas数据帧中,也作为.csv文件导出。在
然后我有一个边界条件,例如在网格中心有一个直径为25的圆。我希望能够删除圆之外的所有点,只需将内部的点保留在新的数据帧中。在
我可以得到圆的边界,xmin,xmax,ymin,ymax,但是当我删除与此相关的点时,我得到了一个正方形(因为最小/最大值是一个整数,只找到离中心最远的点)。在
是否可以保存圆内部的所有点?最好用一种通用的方法,可以应用于省略等
编辑:我找到了这个,它类似于:How to delete a set of meshgrid points inside a circle?
但取决于输入代码的圆的尺寸,因此不具有通用性。因为我有形状的边界点,所以我必须计算它,并假设它是圆形的(可能并不总是这样)。有没有办法适应这种情况,这样我就可以使用边界点创建一个“填充”区域,然后执行布尔运算?在
既然你的问题是。。。在
是的,这是可能的,这有一个公式。
distance_from
下面的函数是二维平面的基本欧几里德距离。在如果向量2d在圆中,此函数
encloses()
将返回True。否则为假。用它过滤你的熊猫数据框。在我怀疑,当你得到一个正方形而不是一个圆时,你在计算公式
encloses()
是一个正方形,而不是一个圆。。。在相关问题 更多 >
编程相关推荐