• 締切済み

C# で3次元の軌跡を描きたい

C#Formプログラムにて 3次元の軌跡をなるべくスムーズに描きたいです。 線と円の数はおよそ1000~1万程度です。 C#のPaintとOpenGLが候補ですが、それより簡単に導入でき、描画処理が重たくない方法があれば教えて頂けませんか? ご教授お願い致します。

みんなの回答

回答No.1

xyz座標をcsvなんかで出力して、描画は専用のソフトに任せちゃう方が良いのでは。 ・簡単だし。 ・3次元のグラフを周囲から視点変更して確認したりとか便利だし。 ・描画も概ね高速ですし。 グラフソフト、gnuplot、Excelなんかでも可能です。

mindeyed
質問者

補足

ご回答ありがとうございます! 確かに簡単ですね・・。 今回、必須条件としてC# Form上で動作させる事を記述し忘れました。 gnuplotはC#用の埋め込みライブラリとかあるのでしょうか?

関連するQ&A

  • CSVを読み込んで人体骨格を描画する方法

    OpenGL初心者です。 人体の骨格を描画し、それをアニメーションさせるプログラムをOpenGLとC++を用いて作ることになりました。 プログラムでは、骨格の関節の3次元座標をまとめたCSVを読み込み、それをもとに骨格を描画させなければなりません。 CSVは図のように、列に頭や手足などの15か所の各関節とそれぞれのx,y,z座標を並べ、行はフレーム数を表しています。 OpenGLに関しては全くの初心者で、応用できそうなサンプルも見つからず、難儀しております。 図のようなCSVを読み込んで、それをもとに骨格を描画するためには、どのようなソースコードを書けばよろしいのでしょうか。 よろしくお願いいたします。

  • マウスカーソル+軌跡を遅らせて表示

    VisualBasic(6.0)で,Form上のマウスの軌跡(実線)を実際より時間的に遅れて表示させるプログラムを作成しています. 方法としては,Timer で数ステップ前の座標を記録し実線を表示+ マウスカーソルをロードしたImageをその位置に移動させる,という処理を行ってみたのですが, その方法ですと,カーソルが既に描かれた軌跡の上を通過すると,前の軌跡が消えてしまいます. そこでFormのAutoRedrawをTrueにすると,カーソルがちらついてしまいます. (TimerのIntervalは10msです.) このような現象を回避するための良い方法はありませんでしょうか? 宜しくお願いします.

  • 法線について。

    どのカテゴリで質問しようか迷ったのですが、ここで質問することにしました。 現在OpenGLを使用して物体の描画を行うプログラムをC++6.0で作成しています。 特別な処理を行うため、結果としてポリゴン数が100万ポリゴンを超える場合もあります。 ポリゴンの描画としては単にそのポリゴンから求めた法線を割り当てているだけなので、フラットシェーディングとして描画しています。 しかしそれを改良して法線を計算しなおし、スムーズシェーディングでの描画を行えるようにしたいと考えています。 そこでスムーズシェーディングの描画にするためには、法線をどのように計算しなおせばよいでしょうか?先ほど述べたように100万ポリゴンを超えることもあるので、できたら多少高速なアルゴリズムがあればと思います。 ご存知の方がいたらご教授よろしくお願いします。

  • OpenGLで角度を求める方法

    OpenGL初心者です。 C++とOpenGLを用いて、人体の骨格を描画し、アニメーションさせようと考えております。 プログラムでは、図のように各関節の3次元座標をまとめたCSVのデータを用いたいと思います。 その中で、ある関節点に対して、その角度を求めたいと考えております。おそらく隣接する他の2つの関節点を結び、その3点の3次元座標を用いて求めることになると思われますが、具体的にどのようなソースコードを書けばよろしいのでしょうか。 CSVは図のように、列に頭や手足などの15か所の各関節とそれぞれのx,y,z座標を並べ、行はフレーム数を表しています。 OpenGLは全くの初心者なので、陳腐な質問かもしれませんが、よろしくお願いいたします。

  • C#のpictureBoxの描画のタイミング

    C#のpictureBoxの描画について質問します。 drawにpictureBoxの描画コードが有りますがあり、Form1() の InitializeComponent();の 後(コードA)では、描画できませんが、button1_Click(コードB)では、描画できるようです。 Q1)プログラムの起動時に、描画できる方法はありますか? public Form1() { InitializeComponent(); 処理コード draw(); //コードA } private void button1_Click(object sender,EventArgs e) { draw(); //コードB }

  • C# ArrayListを二次元配列のように使用したい。

    C#についての質問です。 現在、ArrayListを用いた情報管理リストのプログラムを作成しています。 そのプログラムにソートを行う機能と、検索機能をつけたいのですが、そこで質問です。 ArrayList内の要素を、「特定のフィールド(例えば氏名であったり、年齢であったりするのですが…)を基準として昇順または降順にソートする」という処理、またあるフィールドのみを基準に検索を行うという処理を行う際、ArrayListを二次元配列のように使用することが出来たら便利だな、と思ったのですが、そのようなことは可能でしょうか? いろいろと試したり、独自に調べてはみたのですが、いまいちわからず、質問させていただきました。 お分かりになられる方がいらっしゃいましたら、ご教授いただければと思います。 よろしくお願いいたします。

  • 3次元から二次元への座標変換について

    DirextXなどのライブラリを使用するとオブジェクトやカメラの位置を設定するだけで綺麗にポリゴンが描画されますが、これを手動で計算する具体的方法またその簡単なプログラムのソースを探しています。 当方高校卒業程度の学力で2次元までは公式とその使い方はわかります。 よろしくお願いします。

  • ソリッドのまま加工軌跡を生成できるCAMを探して…

    ソリッドのまま加工軌跡を生成できるCAMを探しています 2次元加工も3次元加工も、製品モデルや素材モデルをソリッドのままで、サーフェスや線や円弧を抽出して利用することなく、加工プログラムを生成できる3次元CAMは現在どのようなものがありますでしょうか? ソリッド・モデルのソリッド・フェイスやソリッド・エッジをダイレクトに選べると手間が一気に省けます。 製品ソリッド・モデルを認識して、干渉しない加工軌跡を生成し、 素材ソリッド・モデルを認識して、無駄な加工軌跡を発生させない、 綺麗な加工軌跡が生成できますと、作業効率もよいですから、今後のCAMの潮流だと言えます。

    • 締切済み
    • CAM
  • RubyとC#について

    現在、研究のためエクセルVBAで数十万~数百万個程度のデータの集計及び分析をしています。 VBAでは時間がかなりかかってしまうことと、グラフの描画能力が低いため、新たなプログラミング言語を勉強しようと考えています。 いろいろ情報を収集した結果、RubyかC#にしようかと思っております。 あまり複雑なプログラミング能力は必要ないため、比較的導入しやすそうなRubyにしようかと考えていますが、グラフの描画能力と将来性を考えればC#の方がいいのではないかと迷っております。 やりたい事は、データの集計分析とある程度の柔軟性のあるグラフの描画です。 どちらの言語が適しているのか是非ご教授ください。 よろしくお願いいたします。

  • 2次元のCAMのソフト(アプリ)を作るには

    2次元のCAMのソフト(アプリ)を作るには、何大学の何学部で学ぶと良いですか?領域を捜査線するデータ処理のアルゴリズムを知りたいです。良い参考書があれば良いのですが、ネットを調べても検討がつきません。ご存知の方がいましたら、教えて頂けると幸いです。dxfの処理やそれらの描画ソフトは作れます。領域をスキャンする手法、分野名が知りたいです。

専門家に質問してみよう