• ベストアンサー

線の描画速度

VCで簡単な2DのCADを作ろうと思っています VCの初心者用の本(MFC)のサンプルを見ながらやっていますが 直線や円などの描画速度が市販のCADに比べて3倍位時間がかかってしまいます。 線の描画速度を上げるにはどんな方法があるのでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
  • MisoUdon
  • ベストアンサー率100% (1/1)
回答No.3

単純に線を書き込むのが遅いというのを 早いで言えば、Direct3Dでワイヤーフレームで表示することではないでしょうか?8になってから、えらく簡単になりました。 もしくは、DirectDrawにてサーフェイスメモリ(システム)をロックし、きちんと最適化した独自のアルゴリズムで書き込んだほうが早い場合もあります。 GDIなどはなにげに遅かったりしますので、上記のものを利用してみてはいかがでしょうか?

botayuki
質問者

お礼

やっとワイヤーフレームで表示させることができました どうもありがとうございました。

その他の回答 (2)

  • danner
  • ベストアンサー率72% (8/11)
回答No.2

何の速度が遅いのかは、実際に見比べてみないと判りませんが 私が描画するときは次のような方法で行っています。 メモリデバイスコンテキストを作成してこれに描画します。 このメモリデバイスコンテキストを出力デバイスコンテキストに コピーする。 こうすると、すばやく画面に表示されます。

botayuki
質問者

補足

メモリデバイスコンテキストってこういう時に使うんですね これからメモリデバイスコンテキストを使っていろいろ試したいと思います

回答No.1

機種依存についてはどうですか? CPUやビデオカードに左右される部分だと思われるのですが…。

botayuki
質問者

補足

いくつかのパソコンで試しましたがあきらかに 描画速度(線を5000本位書く)が違うのです いまはMFCだけでプログラミングしていますが 描画速度に効果的なもの(Direct X や API)などほかにもあると思いますが 一番効果的なものから学習していきたいと思っています。

関連するQ&A

  • VC++2010 描画処理について

    VC++2010 描画処理について質問なんですが、 再描画するさい、前の描画した画像(自分が今作成しているプロジェクトでいうと前、描画した点が消えてしまってあらたに点が描画されるんですが)その前、描画された点を消すことなく新たに点が描画される方法が分からないので質問させていただきました。このままだったら直線にならない、そして点がただ動くだけのプロジェクトになります。点がただ動くだけのじゃない、線が描画される方法をよろしくお願いします。 ではよろしくお願いします。

  • Wordの「図形描画」。線を消すには?

    Wordの「図形描画」で直線だけの図を描いています。 線を消すにはどうしたらいいのでしょうか。 つまり、図「口」の左の縦線を消して図「コ」にしたり、図「目」の横線を一本消して図「日」にしたり、さらには図「白」を図「臼」に、ということです。 あまりにも初歩的な質問なのかもしれませんが、Word関連の本のどこにも、「線(や図形の一部)を消す」をいう項目がありません。

  • AutoCAD LT2006で、線に沿って垂直に線を描く方法を教えてください

    AutoCAD LT2006でCADを勉強中の初心者です。 ある1本の線に沿って、等間隔に垂直に線を描いていくにはどのような操作があるでしょうか? 線は直線と曲線が混ざっており、直線部分は「複写」でなんとか描けるのですが、曲線部分がうまくいきません。 初心者でも美しく描けるコツなどありましたら、伝授いただければと思います。よろしくお願いします。

  • GDIからDirectXへの移行

    描画速度を向上させるため、DirectXを使いたいと思っているのですが、裏画面を作成して、線を引いて、文字を書いて、画面に転送するだけの簡単なCでのサンプルはどこかにないでしょうか? サイトや本を探しても、3Dや複雑なサンプルばっかりで、Hello Worldのような超簡単なサンプルを探しています。 今は、CreateCompatibleBitmapで裏画面を作成して、GDIで描画して、BitBltで画面に転送しています。

  • 円の線上まで中心より直線を引けません。

    Auto CAD初心者です。2013を使っています。 円を書いて、円の中心から、30度の直線を円に向かって引こうとしています。 ですが、円上まで直線をひこうとしても、どうしても引けません。 円の内側や、円外までの直線なら、角度指定された直線が引けるのですが。 どうすれば良いでしょうか?

  • 線と円弧に接する円

    よろしくお願いします。 CAD上では円弧と線があり、その2つに接する円が簡単に描けますが、数式で表すとどうなりますか。 求めたいのは、接する円の中心座標です。円の半径は任意。 直線と円弧の式は既知とします。

  • ライノで描いた線をAUTOCADで太さを変えるには?

    初めて質問します ライノセラスの3Dデータを2Dに変換し.dwgファイルでエクスポート それをAUTO CAD2004LTで開くと描画線の太さ調節ができません レイヤーで線の太さを指定し、形式タブの線の太さで「線の太さを表示」に チェックを入れても線の太さが変化しません 線は分解されていてポリラインになっているわけでもないようです そのレイヤー上に新規で描いた線は指定どおりの太さで描けます わかりやすく出力した図面を現場に流したいので困っています どなたか教えていただけませんでしょうか よろしくお願いいたします

  • Excelの図形描画を一括で消したい。

    Excelの図形描画によるテキストボックスや矢印や直線や円などを一括で削除したいのですが、どうやったらできますか? 行や列やセルでコピーすると、図形描画の図形類もコピーされるのに、行や列やセルを削除しても消えないのです。その場合、図形描画の図形類は点や線に変形してしまうことがあり、クリックして消すことも大変になったりします。 よろしくお願い致します。 当方、Excel2000使用。

  • ワードでテキストボックスと描画の揃え方

    MS2000のワードでフローチャートを作っています。 テキストボックスを何個か作ってその間に図形描画の矢印や直線を挿入するという方法です。 テキストボックスと線をぴったりくっつけたいので、図形の調整→配置/整列で揃えたりしているのですが、 その方法だと時間がかかるので、他に簡単にぴったりくっつける方法はないでしょうか? できれば線を引くという作業の時に、いっぺんにくっつけられればいいのですが…。 すみませんが、どなたかご教授お願いいたします。

  • 描画出力にあたって

    単純に直線や円などを画面に描画するプログラムなのですが 参考サイトの通りに記述しても画像や文字の出力は出来るのですが線や円の描画が出来ません。 指定した位置に線、円、四角形等を画面に描画するとき 下に表記したソースに足りない宣言とかありましたら教えてください よろしくお願いします #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ ChangeWindowMode(TRUE) ; if( DxLib_Init() == -1) return -1; int white,red,g_blue; white = GetColor(255,255,255); red = GetColor(255,0,0); g_blue = GetColor(0,255,255); DrawLine(10,10,630,10,white); DrawBox(10,50,310,100,g_blue,false); DrawBox(10,150,310,200,g_blue,true); DrawCircle(500,300,100,red,true); WaitKey(); DxLib_End(); return 0; } なお参考にしたサイトは http://l.huu.cc/g/#0 です