2011-10-31 13 views
1

私はCAD開発の初心者です& OpenGLについていくつか知りたいです。 私の主な目的は、円錐曲線、サイクロイド、外サイクロイド、ハイポサイクロイド、インボリュートを表現するためである、などが は、私は直接いくつかのtrigonometryを使用してそれらを表すことができ、または私はBスプラインに、これらの曲線を変換する必要がありますか? は、実際に私は、現在、私は上記の曲線を表示傾けるようにカーネルを開発したいカーネル&を開発しています。(私はグラフィカルに表現するカント場合は、カーネルにこれらの曲線をサポートするには使用はありません!) 私は、OpenGLについて多くを知りません私の質問が本当にばかだと私を許してください! hereを検索してみましたが、何か有用なものが見つかりませんでした。OpenGLで表現できる曲線

答えて

4

OpenGLは、直接ベジェ曲線や評価者とGLUのAPIを使用していてもNURBSを使用してサーフェスをレンダリングすることができます。詳細については、OpenGL Programming Guideを参照してください。したがって、これらの曲線とサーフェスをこのフォームに変換できます。

しかし、私は非常にソフトウェアではなくハードウェアで実装される可能性が高い、今日(新しいOpenGLのバージョンのコアから落下)それらが廃止されて、あなたは、これらの機能を使用しないことをお勧めします。

代わりにするのではなく指定したサンプリングレートで対応する方程式を評価し、そのような曲線や曲面のための独自の評価ルーチンを実装し、簡単な頂点配列(多分とインデックス配列)を生成する必要があります。これにより、VBO(最新のOpenGLで何かをレンダリングする唯一の方法)を使用して、標準線のストリップや三角形のメッシュとしてレンダリングできるので、将来の状態を維持できます。

と一般頂点配列はまた、Direct3Dのか、何を使用してレンダリングすることができるようあなたも、APIに依存しないとどまります。そうすれば、描画カードでCADカーネルを汚染することはありません。必要なのは、パラメトリックカーブとサーフェスを頂点の配列(インデックスかもしれません)に変換する関数です。カーネルのクライアント/ユーザは、好きなAPIでそれらを描画する必要があります。

+0

ありがとう&+1 –

3

私が間違っていない場合、OpenGLは平坦なポリゴンでのみ動作します。 GLUTライブラリに上記の図形を描画する方法や、それらの図形の.objをgoogleで描画して、それらの図形をスケールしたり、回転させたり、必要な位置に翻訳したりする方法があるかどうかを確認できます。

+2

OpenGLとDirect3Dを使用して、線、点、またはポリゴンを簡単にレンダリングできます。つまり、ポリゴンに限定されません。唯一の問題は、ラインを頂点に信用してグラフィックスAPIに線を引くように指示することです。 – edvaldig

+0

これは、.objの意味です。これにはオブジェクトの頂点と面が含まれており、縮尺、平行移動、回転を実行できるので、単一の.objを再利用して、必要な数の異なる図を構築できます。 –

+2

@JosepRodríguezLópezしかし、あなたは必然的に.objやファイルを必要としません。あなたがパラメトリックな表現をしているならば、離散サンプルでそれを評価することができます。これは、NURBSのように、曲線/サーフェスがもっと複​​雑になる場合は、固定されたモデルをロードするよりも、おそらくCADプログラムでうまくいくでしょう。 –

関連する問題