ページ 11

二次関数のグラフなどを描写したい

Posted: 2012年3月30日(金) 00:31
by Cr
例えば、y = ax^2+bx+cのaの値を遷移させていけばグラフはどのように変化するのか、みたいなのをプログラミングを書いて実現したいです。
最終的にはバーのスクロールとか直観的な操作で色々な関数の色々な値をかえた時にグラフがどう変わっていくのかの表示をしたいのですが、何を学べばいいでしょうか?
DirectXは画像処理がメインのようですし、Windows.h系統もボタンなどは簡単に実現できるようですがグラフをどうやって実現すればいいのかが分りません。
また、手元にあったこちらの本にグラフィックスの項目がありglib.hというヘッダファイルを使う事で直線図形を描くことはできるようなのですが、二次関数は表現できるのか分りませんでした。
ただ二次関数を描くだけでなく、その式のある値を徐々に変化させることによってグラフがどう変化していくのかという移り変わりを滑らかに表示したいのですが…
最悪C言語でなくても良いのでそのような事を実現する方法を教えて下さい。

Re: 二次関数のグラフなどを描写したい

Posted: 2012年3月30日(金) 01:28
by nil
直線を描けるということですが、
ドットを画面に打つことはできますか?


そうであれば
計算を用いて座標を算出、
画面にドットを描画

でいけるかと……

ドットとドットの間が空いてしまうようであれば
前の座標から次の座標へ順々に直線を引いていくだけでも
なめらかには見えるかと思います

Re: 二次関数のグラフなどを描写したい

Posted: 2012年3月30日(金) 06:33
by beatle
自作アプリ側で式を生成して、グラフ描画自体はgnuplotという、フリーのグラフ描画ソフトに投げるというのも手です。
これなら、自作アプリではバーのスクロールなどから得たパラメータを使って文字列を構築するだけですから、DirextXは使いません。

自分でグラフを書きたいなら、涼雅さんがいうように、点で描くのが簡単でしょう。
具体的には関数のxの値をほんのちょっとずつ加算しつつ、各xに対応するyの値を求めて、その(x, y)に点を打てばグラフに見えるでしょう。

点間の補完は、涼雅さんの提案する直線補完方式もありますし、gnuplotの場合は確か曲線で補完してくれるモードもあったと思います。

Re: 二次関数のグラフなどを描写したい

Posted: 2012年3月30日(金) 23:51
by Cr
涼雅さん>
なるほど、点の集合が線だからってことですよね。
思いつきませんでした。
隙間があいてしまうということですが、これはこれでわざと隙間の間隔をランダムにしたりしても遊べそうですw

beatleさん>
フリーでグラフを描くソフトなんかあるんですね
こちらも便利そうです。

とりあえず、教えてもらった方法でいろいろいじって遊んでみます。
どうもありがとうございました。