Одна функция / объект визуально внутри другой функции / объекта на графике / изображении - PullRequest
0 голосов
/ 31 октября 2018

Мне нужно использовать Python или Matlab , для этой проблемы.

У меня есть следующий график и уравнения ниже, которые также доступны на desmos .

Как я могу определить, находится ли красный круг 1 в области A или области B ?

Текущий подход (ы):

  1. использует много операторов if, чтобы выяснить, где находится окружность относительно каждой области, но это создает запутанную программу, которая потребовала бы много тщательного перекодирования при изменении формы областей.

  2. создать набор всех точек (x, y), которые лежат в каждой области, а затем проверить, содержатся ли точки на границах круга в одном из этих наборов. ... но это кажется очень наивным и неэффективным.

Примечание:

Настоящая проблема заключается в создании более сложных фигур из кусочных функций, но я подумал, что это будет хорошей отправной точкой.

One Function Inside Another IMAGE?

1 Ответ

0 голосов
/ 31 октября 2018
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 с и сравните их.

Полярные координаты круга можно получить, решив

enter image description here

для r

...