質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

0回答

798閲覧

glRotated()関数を使って線を回転させたい。GL_LINES

退会済みユーザー

退会済みユーザー

総合スコア0

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/06/23 02:42

提示画像ですが引数でstart,endを設定してその真ん中の座標を中心に線を回転させたいのですがこれどうやればいいのでしょうか?コメント部のコードの実装方法がわかりません。他が違う可能性もありますが一番怪しいのはここなのですがどうやって回転させるのでしょうか?

イメージ説明

cpp

1 2 // ##################################### 線 描画 ##################################### 3 void DrawLine(glm::vec2 start,glm::vec2 end, GLfloat size,float r, glm::vec4 color) 4 { 5 float dx = 1.0f / (FrameWork::getWindowContext()->getSize().x / 2); 6 float dy = 1.0f / (FrameWork::getWindowContext()->getSize().y / 2); 7 float c = 1.0f / 255.0f; 8 glColor4f(color.x * c, color.y * c, color.z * c, color.w * c); //カラー 9 10 glLineWidth(size); //サイズ 11 12 //////////////////////////////////////////////////////////////// 13 glm::vec2 p; 14 p.x = (1.0f - (end.y * dy)) - ((start.x * dx) - 1.0f); 15 p.y = ((end.x * dx) - 1.0f) - ((start.x * dx) - 1.0f); 16 /// /////////////////////////////////////////////////////////// 17 18 glPushMatrix(); 19 glTranslated(p.x,p.y, 0); 20 glRotated(r, 0, 0, -1); 21 22 23 24 glBegin(GL_LINE_LOOP); 25 26 27 //始点 28 glm::vec2 posA; 29 posA.x = (start.x * dx) - 1.0f; 30 posA.y = 1.0f - (start.y * dy); 31 32 //終点 33 glm::vec2 posB; 34 posB.x = (end.x * dx) - 1.0f; 35 posB.y = 1.0f - (end.y * dy); 36 37 glVertex2f(posA.x, posA.y); //始点 38 glVertex2f(posB.x, posB.y); //終点 39 40 glEnd(); 41 glFinish(); 42 glPopMatrix(); 43 44 45 } 46

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/06/23 09:21

どれほどあなたの作ったフレームワークが優秀なのかわかりませんが、 もっと最小の実装から試したほうがいいですよ、問題の切り分けが難しくなるので。
fana

2021/06/23 09:48

回転させるものが線だろうが楕円だろうが,やることの理屈は一緒なわけで. https://teratail.com/questions/345582 理屈が分かっていて,それを実装したつもりだけども動作が怪しいのなら「デバッグしましょう」だけの話.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問