- 締切済み
陰関数の作画方法
2次元の曲線、たとえば、x^7+y^7=1の図形を段ボールで作りたいとしたとき。 陽関数の形に変換して、y=(1-x^7)^(1/7) をExcelなどで数値を拾ってやれば何とかなります。 陽関数の形に変換が難しい場合、皆さんならどうしますか?(目的はあくまで作図です。点列を適度な精度で生成できれば良い。) Mathematicaなどはどうやっているのでしょう?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- alice_44
- ベストアンサー率44% (2109/4759)
x≧0, y≧0 の範囲は x = (cosθ)^(2/7), y = (sinθ)^(2/7), 0≦θ≦π/2 で、 x>0, y<0 の範囲は x = (cosθ)^(2/7), y = -(tanθ)^(2/7), 0<θ<π/2 で、 x<0, y>0 の範囲は y = (cosθ)^(2/7), x = -(tanθ)^(2/7), 0<θ<π/2 で、 パラメータ表示したらよいのではないか。 いくつかの θ を細かく選んで (x,y) をプロットするか、 隣り合う点を線分でつないで多角形近似する。 いつでもこう上手くいくとは限らないが、 パラメータ表示が見つかれば、楽勝。
- 中村 拓男(@tknakamuri)
- ベストアンサー率35% (674/1896)
g(x, y) = x^7 + y^7-1 という関数を作り、 x, y を小刻みに変えて g を大量に計算します。 gの符号が反転する境目に点を打つと、陰関数が浮かび上がります。 最近のパソコンなら 1000x1000=100万点位計算しても一瞬です。
お礼
回答ありがとうございます。 甥っ子が早速アルゴリズムを考えているようです。 テーマはどうやら卵形の描画らしく下記の式だそうです。 (x^2+y^2)^2-2a(x^2-y^2)=k^2-a^2 (a,kは0<k<aなる定数) 極座標変換して、r^2=a・cos2θ±√((a・cos2θ)^2+k^2-a^2)で、θを刻んでrを求めたら?っていったんですが、 回答者の方法が気に入ったみたいで、なにやらごそごそやっております。(^▽^)
お礼
回答ありがとうございます。やはり、真っ先に考えるのはパラメータ表示できないかですよね。 x^n+y^n=1 は第一象限で x=(cosθ)^(2/n),y=(sinθ)^(2/n) (0≦θ≦π/2) でパラメトライズできますね。気がつかなかった。