在绘图/图像中,一个 Function/Object 在视觉上位于另一个 Function/Object 内
Is One Function/Object Visually Inside Another Function/Object in Plot / Image
我需要使用 Python 或 Matlab 来解决这个问题。
我有下面的图和下面的方程式,它们也可用 on desmos。
如何判断红圈1是在A区还是B区 ?
当前方法:
使用大量 if 语句来确定圆相对于每个区域的位置,但这会使程序变得混乱,如果区域的形状发生变化,则需要进行大量仔细的重新编码.
生成一组位于每个区域中的所有点 (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
我需要使用 Python 或 Matlab 来解决这个问题。
我有下面的图和下面的方程式,它们也可用 on desmos。
如何判断红圈1是在A区还是B区 ?
当前方法:
使用大量 if 语句来确定圆相对于每个区域的位置,但这会使程序变得混乱,如果区域的形状发生变化,则需要进行大量仔细的重新编码.
生成一组位于每个区域中的所有点 (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