在绘图/图像中,一个 Function/Object 在视觉上位于另一个 Function/Object 内

Is One Function/Object Visually Inside Another Function/Object in Plot / Image

我需要使用 PythonMatlab 来解决这个问题。

我有下面的图和下面的方程式,它们也可用 on desmos

如何判断红圈1是在A区还是B区

当前方法:

  1. 使用大量 if 语句来确定圆相对于每个区域的位置,但这会使程序变得混乱,如果区域的形状发生变化,则需要进行大量仔细的重新编码.

  2. 生成一组位于每个区域中的所有点 (x,y),然后检查圆边界处的点是否包含在其中一个集合中。 ...但这似乎非常幼稚且效率低下。

注:

真正的问题涉及从分段函数创建的更复杂的形状,但我认为这将是一个很好的起点。

import numpy as np

f1 = lambda theta : 3 / np.cos(2/5 * np.arcsin(np.sin(5*2*theta)))
c1 = lambda theta : np.sqrt(0.1)

inside, outside = False, False
for theta in np.linspace(0, 2*np.pi, 100):
    if c1(theta) <= f1(theta):
        inside = True
    if c1(theta) >= f1(theta):
        outside = True

if inside and outside:
    print('intersect')
elif inside:
    print('inside')
else:
    print('outside')

给定一个区域 f1 和一个圆 c1,都在极坐标中。计算不同 theta 的半径,并进行比较。

圆的极坐标可以通过求解得到

对于r