• ベストアンサー

360度を超える角度

角度がだんだん増えていくプログラムで 、角度が360度を超えてしまう場合、0+<=x<360で表示したいのですがどうすればいいでしょうか? (例えば1050度を330度と表示したい) if elseを使って if(x>=1080){ x=x-1080; } if else(x>=720){ x=x-720; } とやっていけばできるのですが、これでは1440度(360*4度)以上は360を超えてしまします。 for文でtを増やして、 if(x>=360*t){ x=x-360*t;} とやってみたのですがダメでした・・。 お願いします

  • Java
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

x=x%360;

p-aimar
質問者

お礼

すばやい回答ありがとうございました!!!

その他の回答 (2)

  • batai
  • ベストアンサー率40% (18/44)
回答No.3

No.2です。 書き込み時間がNo.1の方と重複してましたので見れなかったのですが、No.1の方の書き方の方が簡単ですね。 x = x % 360; これだけでxが1000度の場合勝手に280度になりますね。

p-aimar
質問者

お礼

ありがとうございました!! こんなに簡単なんですね! もっと勉強します!!!

  • batai
  • ベストアンサー率40% (18/44)
回答No.2

javaはわかりませんが、Cでの書き方を思いつきました。参考になりましたら。 int d,x;   // xが求める角度 d = x / 360; x = x - 360*d; これでOKだと思います。 例えばxが1000度の場合、1000 / 360 = 2.77・・ なのでdにはその整数部分の2が入ります。dはint型で宣言しているからです。もし不安ならint型にキャストしてもいいでしょう。 これでx = 1000 - 360 * 2 つまりxには280度がめでたく入るわけです。

関連するQ&A

  • if文の処理部分の括弧を省略した場合の書き方

    C言語のif文の書き方についてですが、通常 if(条件) { ---処理1------- } else if(条件) { ---処理2------- } else { ----処理3------ } 括弧を使った場合は上のような動作をすると思うのですが、括弧を使った場合、 次のif文の”処理1”部分if((TEST_SENSOR & 0x03) == 0x03)は正常に動作できますでしょうか? コメント文が1行入ってしまうとダメでしょうか? コンパイラはエラーは出しませんでした。 if((TEST_SENSOR & 0x03) == 0x03) //return TEST_ERR; return T_NONE; else if((SENSOR & 0x03) == 0x01) return T_LOCK; else if((TEST_SENSOR & 0x03) == 0x02) return T_UNLOCK; return T_ERR; どうぞ、ご教授頂きますよう、お願い致します。

  • プログラミング(JAVA)について

    2つほど質問があります。どなたか回答していただける方がいたらお願いします。 1、以下のじゃんけんゲームのプログラムを作成したのですがfor文を用いてコードを短くするにはどうすればいいですか?      class jyanken { public static void main(String[] args) { int x = 0, y = 0; if (args[0].equals("グー")) { x = 0; } else if (args[0].equals("チョキ")) { x = 1; } else if (args[0].equals("パー")) { x = 2; } else { System.out.println("エラー"); } y = (int)(Math.random() * 10.0) % 3; if (x == 0) { if (y == 0) { System.out.println("あいこ"); } else if (y == 1) { System.out.println("勝ち"); } else if (y == 2) { System.out.println("負け"); } } else if (x == 1) { if (y == 1) { System.out.println("あいこ"); } else if (y == 2) { System.out.println("勝ち"); } else if (y == 0) { System.out.println("負け"); } } else if (x == 2) { if (y == 2) { System.out.println("あいこ"); } else if (y == 0) { System.out.println("勝ち"); } else if (y == 1) { System.out.println("負け"); } } } } 2、もう1パターンでじゃんけんプログラムを作成しようと考えているのですが。上手くできないので参考のファイルを掲示してもらえると嬉しいです。 機能としては、for文とif文を使用して。プログラムの起動と同時に、コンピュータがグー、チョキ、パーをランダムに出す(プレーヤに見せない) 次に人がグー、チョキ、パー何を出すかをキーボードで入力して最後にプログラムが出したものとコンピュータがランダムに出したものと比較し、勝負を表示する。といった感じです。

  • ☆のそれぞれの角度っていくつ?

    夏休みに入り、一人でプログラムを独学しています。 ☆型をプログラムで書きたいんですが それぞれの角度がいくらかわからないんでかけません・・。 星型の左端に接するようにy軸を置き、星型の下の部分に接するようにx軸をおいて それぞれの線を方程式であらわしたいのです。 例えば下のような三角形を表示したいときは ■ ■■ ■■■ ■■■■ ■■■■■ ■■■■■■ ■■■■■■■ ■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■■ x > 0 , y > 0 , y <= -x + 10 ですよね。 こんな風に☆(星形)もそれぞれを方程式であらわしたいのです。 どなたか方程式教えていただけないでしょうか。

  • 角度は求まるのでしょうか?

    三角形の図形の角度を求める問題です。 △ABCにおいて、辺AB上に点D、辺AC上に点Eをおき、 ∠A=s、∠ABE=t、∠CBE=u、∠BCD=x、∠ACD=yとする。 ∠EDC=α、∠DEB=βとするとき、 α,βを、s,t,u,x,yを用いて表すことができるか? http://www.geocities.co.jp/CollegeLife/2898/sankaku.gif ↑絵はこちらにあります。 α+β=u+x は簡単に出るのですが、その先がどうにもなりません。 s,t,u,x,yがある特殊な角度(関係)であれば、その角度から求めることはできるのですが、一般にはどうなのでしょう? 暇なときで構いませんので、ご存知の方がいらしたらよろしくお願いします。

  • 角度の計算(C++)

    Theta cos(theta) sin(theta) 0.0    1.00     0.00 .    .     . .    .     . 上のような表示ができるプログラムを書いてます。角度は0度、5度、10度、15度、、、と5度毎に表示させないといけません。表示角度は角度は0-360度までです。 下のように書いてみましたがエラーが出てしまいます。何が問題なんでしょうか? int main(){ const double PI = 3.1415; double r = PI /180; cout<<setw(5)<<"theta"<<setw(13)<<"cos(theta)"<<setw(13)<<"sin(theta)"<<endl; for( int theta=0; theta<=360; <<theta += 5) cout<<setw(5)<<setprecision(1)<<(double)theta <<setw(14)<<setprecision(2)<<sin(theta * r) <<setw(10)<<cos(theta * r)<<endl; return 0; }

  • 角加速度

    こんばんは。 実は今、エンコーダーを使って人が脚を動かしたときの角加速度を計測するという実験をしています。 それで、visual C++で現在の角度をθt、1タスク前の角度をθ(t-1)、サンプリングタイムをTとして、計算式を加速度の公式に基づいて "(θt-θ(t-1))/T2" としたのですが、結果は最大1000rad/s2というとんでもない値になってしまいました。色々修正を行ってやり直してみたのですが、同じ結果にしかなりません。もし、良い計算式がありましたら教えていただきたいです。もし、if文を使用することになる場合は、その部分だけでもいいのでソースも教えていただけたらうれしいです。 ちなみに、サンプリングタイムは1タスク0.0005sです。

  • 角度を求めるプログラム

    x,y座標上の2点を結んでできる線の度数での角度(45度、270度といった) を得たいのですがそういうプログラムまたは関数などはあるのでしょうか? 例えばA(0,1)とB(1,2)だと、B-Aでx=1,y=1になりy/x=1という数字が出てきます。 この1が45度になるようなアルゴリズムが知りたいです。

    • ベストアンサー
    • PHP
  • 角度の求め方

    VBAで2つのX,Y座標から角度を求めるにはどのようにしたら良いのでしょうか。 例えばx1=100,y1=100とx2=200,y2=200は45度、というような場合にx1,y2とx2,y2を使って45を求めたいのですが...

  • 角度を求めたい。

    x,yの角度を求めたいです。円の半径が4000m、aの角度が20度、bの角度が20度です。

  • 最高角加速度の求め方

    http://sekkei.if.land.to/item_chokudou_huka_01.html 上記サイトで、途中の文で まずは最高角速度ωを求めます。    回転角度は台形の面積となるので、    ω*(t1+t2)=θ*π/180 (rad/s)    但し、t1、t2はX軸の時間 (s)       θは回転角度 (°)    ω=θ*π/(180*(t1+t2)) (rad/s)    より、    ω=450*π/(180*(0.1+0.2))=26.17 (rad/s)     ここで、求める最高角加速度ω'は台形波の斜辺となります。    よって、    ω'=ω/t1=〔θ*π/180*(t1+t2)〕/t1               とありますが、回転角度は台形の面積までは理解できるのですが 最高角加速度はなぜ、平均角速度を加速時間で割るのですか? 総回転角度を時間で割れば平均角速度ですよね 平均角速度ではなく、単純にt1で到達した角速度をt1で割るのではないのですか? この文を見て、最高速度、最高角加速度と速度、加速度の定義がよく理解できなくなりました t1で到達した角速度をt1で割るはただの角加速度で最高となると意味が違うのでしょうか? 初歩的な質問で申し訳ありません

専門家に質問してみよう