极坐标方程给出的阵列掩模边界
Array mask boundary given by polar equation
我有以下极坐标方程:r(theta) = R + a*Sin(n*theta)
,它制作了这种图(为此我使用了 R=1
、a=0.1
和 n=5
):
我想得到一个二维笛卡尔数组,它在这个边界内 0
,在边界外 1
(红笔标记)。
有人知道“优雅”且简单的方法吗?
到目前为止(以及正在进行的)我的尝试只是试图将极坐标网格转换为笛卡尔网格...
无论您的数组采用何种形式,每个位置的值都只是对功能值的测试:
import math
def array_val(x, y):
# Compute the function value for the proper angle;
# Compare to the actual radius; return 0 or 1
theta = math.atan(y/x) # Adjust for proper quadrant
r = math.sqrt(x*x + y*y)
return int(r <= (R + a * math.sin(5 * theta)))
我有以下极坐标方程:r(theta) = R + a*Sin(n*theta)
,它制作了这种图(为此我使用了 R=1
、a=0.1
和 n=5
):
我想得到一个二维笛卡尔数组,它在这个边界内 0
,在边界外 1
(红笔标记)。
有人知道“优雅”且简单的方法吗?
到目前为止(以及正在进行的)我的尝试只是试图将极坐标网格转换为笛卡尔网格...
无论您的数组采用何种形式,每个位置的值都只是对功能值的测试:
import math
def array_val(x, y):
# Compute the function value for the proper angle;
# Compare to the actual radius; return 0 or 1
theta = math.atan(y/x) # Adjust for proper quadrant
r = math.sqrt(x*x + y*y)
return int(r <= (R + a * math.sin(5 * theta)))