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

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

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

GLFWは、OpenGLを使用してアプリ開発を行うためのフレームワークです。Macにも対応しているマルチプラットフォームであることが特徴。ウィンドウ管理、解像度切り替え、入力管理などの機能を持ちます。

C++

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

Q&A

解決済

2回答

1158閲覧

線の座標を角度で変更し、扇状に広げた図形を作りたい

sudo-san

総合スコア5

GLFW

GLFWは、OpenGLを使用してアプリ開発を行うためのフレームワークです。Macにも対応しているマルチプラットフォームであることが特徴。ウィンドウ管理、解像度切り替え、入力管理などの機能を持ちます。

C++

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

0グッド

0クリップ

投稿2021/04/16 07:11

編集2021/04/16 07:25

実現したいこと
葉っぱのような形をした図形を角度で座標の変更をしたい
座標(0,0)を中心に二次元で扇状に広げたい

行き詰まっていること
角度が0の時に正しい葉っぱの形ができるが
角度を変更すると横から潰したような葉っぱの形になるだけでなく、扇状に広がらず左右でしか表示がされない。
y軸を中心として回転してしまっている状態のようでz軸を中心とした回転にしたい

ソースコード

static void make_flower(){
double Pi =3.1415926535;
int angle =0;
while(180 >= angle){
double c_radius = cos(anglePi/180);
double s_radius = sin(angle
Pi/180);

glBegin(GL_POLYGON); glColor3f(1.0,0.0,0.0); glVertex2f(0.0, 0.0); glVertex2f(0.2*c_radius, 0.15*s_radius); glVertex2f(0.5*c_radius, 0.25*s_radius); glVertex2f(0.7*c_radius, 0.2*s_radius); glColor3f(0.0,0.0,1.0); glVertex2f(1.0*c_radius, 0.0*s_radius); glVertex2f(0.7*c_radius, -0.2*s_radius); glVertex2f(0.5*c_radius, -0.25*s_radius); glVertex2f(0.2*c_radius, -0.15*s_radius); glEnd(); angle += 15; }

}

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

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

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

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

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

guest

回答2

0

ベストアンサー

回転行列


OpenGL詳しくないので外してたらごめんなさいなんですが、
座標の回転だなんて頻出の操作、予め用意されているだろうと調べましたら
glRotatefという関数がありました。

投稿2021/04/16 07:44

編集2021/04/16 07:51
ozwk

総合スコア13512

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

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

sudo-san

2021/04/16 08:02

ありがとうございます! そちらで解決しました。
guest

0

c_radius が使用されていない様子.
glVertex2f()の2つの引数がどちらも s_radius を用いていますが,一方は c_radius を用いるのが本来の意図ではないかと.

投稿2021/04/16 07:20

fana

総合スコア11634

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

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

sudo-san

2021/04/16 07:27

ありがとうございます。ソースコードの変更をしたところy軸を中心に回転してしまっているようでz軸中心に回転させたいのですが、なにかわかりますでしょうか
fana

2021/04/16 08:16 編集

glVertex2f()を使って (x,y) を指定しているんだから "この(x,y)を指定している座標系における"y軸を中心に回る なんてことはあり得ん. 質問者の言う「y軸」とか「z軸」というのが一体どの世界の軸なのか? という話に依存するんだろうけども,その辺の話が存在していた元々のコード自体をなかったことにして解決としたようなので,もはやどうでもいい.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問