私はアレイ内で完全なターンを形成する角度を持っています。x
、-90から270までです。 (0から360または-180から180までのように、別の方法で定義することができます)。完全な回転角度値は、関数asinを使用して半回転にマップされます。どのようにそれらをミラーリングするのですか?
asin
機能は有効です -90と+90の間です。
したがって、角度< -90または> 90は、これらの値の間に "マップ"されます。
など。 y
= some_asin_func(over_sin(x
))は、常に-90〜+90の間の値であるy
になります。だからy
は-90と+90の間に詰まっています。それはまだ曖昧だから
私は、どの入力をxに関連するy
で取得する必要があります:例えば、機能オーバー(x
)はx = 120
とx = 60
、またはx = -47
とx = 223
に同じy
値が得られます。それは私が望むものではありません。
他の方法を使用してください。私はx
がどこから始まり、x
が終わるところまでx
のように完全に曲がるy
が必要です。
画像が良くなる:270(グラフの右側)へここ
、-90(左)との間の範囲x
。
曲線の有効部分はx=-90
とx=+90
(グラフの左半分)です。
他のすべての値は、y = 90またはy=-90
についてミラーリングされた値です。
例えばx=180
の場合、私はy=0
を得て、それはy=180
でなければなりません。
x=270
の場合、y=-90
ですが、y=270
、つまり+360である必要があります。ここで
は、コードサンプルです:
A = 50 # you can make this value vary to have different curves like in the images, when A=0 -> shape is triangle-like, when A=90-> shape is square-like.
x = np.linspace(-90,270,int(1e3))
u = np.sin(math.pi*A/180)*np.cos(math.pi*x/180)
v = 180*(np.arcsin(u))/math.pi
y = 180*np.arcsin(np.sin(math.pi*x/180)/np.cos(math.pi*v/180))/math.pi
plt.plot(x,y)
plt.grid(True)
はもう一度、グラフの最初の左半分が完全に正しいです。 右半分もその行動の正しいですが、最終的には、ここでは、それはこのように、位置y=+90
x>90
の水平軸の周りをミラーリングする必要があります。
、それは機能のようなものです[-90、+ 90]約Y = -90 x
が範囲外であるy
ためとY = + 90 [-90、+ 90]ミラーとx
が範囲外である場合にのみここれます。
Iが有効[-90、+ 90]の範囲外で非ミラーたい:
約y=-90
y
約y=+90
y
が+90
低い場合
もちろん、それぞれの完全なターンをモジュロにします。ここ
他の例ここx
-180から180の範囲であり、所望の挙動:まだ
:
募集:
Iが最初に持っていますいくつか簡単なことを今までテストした:
すべてで を動作しますが、私は、バックグラウンドのアイデアがあると思いませんA = 50
x = np.linspace(-180,180,int(1e3))
u = np.sin(math.pi*A/180)*np.cos(math.pi*x/180)
v = 180*(np.arcsin(u))/math.pi
y = 180*np.arcsin(np.sin(math.pi*x/180)/np.cos(math.pi*v/180))/math.pi
for i,j in np.ndenumerate(x):
xval = (j-180)%180-180
if (xval < -90):
y[i] = y[i]-val
elif (xval > 90):
y[i] = y[i]+val
plt.plot(x,y);
plt.grid(True)
plt.show()
...
私はそれがモジュロトリックのいくつかの種類かもしれ推測するが、それを把握することはできません。ここ
あなたがしようとしていることを理解しているかどうかはわかりません。極座標で角度の関数として単位円上のx-yペアを求めますか? –
私は北に相対的な赤道面上の角度に基づいて星のアジムット(水平面で測定)を取得したいと思うように、バックグラッドを見ることができました。だから私は完全な0-360のx値の関数に基づいて完全な0-360のy値を取得する必要があります。 –
質問の中核を正しく理解していますか?2番目のグラフのように曲線を定義しますか? – kazemakase