ODEã§å­¦ã¶C言語2 [Step2:繰り返ã—]

2010-06-11
By demu
ピラミッド:ホームワークã®ç­”ãˆ

ピラミッド:ホームワーク6ã®ç­”ãˆ

Step1ã§ç‰©ä½“ã®æç”»ã‚’å­¦ã³ã¾ã—ãŸï¼Žä»Šå›žã¯NHK大学ロボコンã§KITãƒãƒ¼ãƒ ãŒå„ªå‹ã—ãŸã“ã¨ã‚’記念ã—ã¦ï¼Œä¸–界大会ã®é–‹å‚¬åœ°ã§ã‚るエジプトã«ã¡ãªã¿ï¼Œãƒ”ラミッドを作ã£ã¦ã¿ã¾ã—ょã†ï¼Žã“ã“ã§ã¯åŒã˜ç‰©ä½“を何個もæç”»ã™ã‚‹æ–¹æ³•ã‚’å­¦ã³ã¾ã™ï¼Ž
C言語ã®ç¹°ã‚Šè¿”ã—ã«ã¯foræ–‡, while文,do whileæ–‡ãŒã‚りã¾ã—ãŸã­ï¼Žã“ã“ã§ã¯for文を使ã„,図ã®ã‚ˆã†ãªãƒ”ラミッドを作ã£ã¦ã¿ã¾ã—ょã†ï¼Žã§ã¯ã€ã•ã£ããソースコードを見ã¦ã„ãã¾ã™ï¼Ž

13行目ã®dsSetColor()ã¯è‰²ã‚’設定ã™ã‚‹é–¢æ•°ã§ã™ï¼Žå¼•æ•°ã¯å…‰ã®3原色ã®å€¤ã‚’3個å–り,1番目ã¯èµ¤ï¼Œï¼’番目ã¯ç·‘,3番目ã¯é’æˆåˆ†ã§0以上1以下ã®å€¤ã¨ãªã‚Šã¾ã™ï¼Žã¡ãªã¿ã«ï¼Œå…¨éƒ¨0ã ã¨é»’,全部1.0ã ã¨ç™½ã§ã™ï¼Ž
15ã‹ã‚‰18行目ãŒforæ–‡ã§ã™ï¼Žç¹°ã‚Šè¿”ã—回数ã¯num回,ã“ã“ã§ã¯10行目ã§numãŒ11ã«ãªã£ã¦ã„ã‚‹ã®ã§ï¼Œ11回ループãŒå›žã‚‹ã“ã¨ã«ãªã‚Šã¾ã™ï¼Ž
16行目ã®p[1]ã¯çµ¶å¯¾åº§æ¨™ç³»ã®y座標ã®å€¤ã§ã™ï¼ŽãªãŠï¼Œp[0]ã«ã¯x座標,p[2]ã«ã¯z座標ã®å€¤ãŒå…¥ã£ã¦ã„ã¦ï¼Œx座標ã¯åœ°é¢ã®ä¸­å¤®ãƒžãƒ¼ã‚«ãƒ¼ã‹ã‚‰èµ¤ãƒžãƒ¼ã‚«ãƒ¼ã®æ–¹å‘,y座標ã¯ä¸­å¤®ãƒžãƒ¼ã‚«ãƒ¼ã‹ã‚‰é’ãƒžãƒ¼ã‚«ãƒ¼ã®æ–¹å‘,z座標ã¯ä¸­å¤®ãƒžãƒ¼ã‚«ãƒ¼ã‹ã‚‰ä¸Šç©ºæ–¹å‘ã«ãªã‚Šã¾ã™ï¼Ž
17行目ã¯ç›´æ–¹ä½“ã®æç”»ã§ã™ï¼Ž
ã“れã§ä»Šå›žã¯çµ‚ã‚りã§ã™ï¼Žãƒ›ãƒ¼ãƒ ãƒ¯ãƒ¼ã‚¯ã¯å°‘ã—難ã—ãã—ã¾ã™.

/* step2 物体ã®ç¹°ã‚Šè¿”ã—表示 */
#include "dm2.h"
double R[12];  // 回転行列ã®å„è¦ç´ ãŒæ ¼ç´ã•れるé…列
double p[3] = {0.0, 0.0, 0.05};   // ä½ç½®(x,y,z)[m]
double sides[3] = {0.1, 0.1, 0.1}; // 直方体ã®ã‚µã‚¤ã‚º(x, y, z)[m]

void simLoop(int pause)        /***  シミュレーションループ ***/
{
 int i, num = 11;             // ç›´æ–¹ä½“ã®æ•°
 dsSetColor(1.0, 0.0, 0.0);   // 赤色ã®è¨­å®š(赤,緑,é’)
 for (i = 0; i < num; i++) {
  p[1] = i * 0.2;
  dsDrawBox(p,R,sides); // 直方体ã®è¡¨ç¤º
 }
}

int main()         /*** main関数 ***/
{
 dmLoop(800, 600, simLoop); // シミュレーションループ ウインドウã®å¹…,高,ループ関数
 return 0;
}

ホームワーク2

  1. step2-100611.zipをダウンロードã—ã¦å®Ÿè¡Œã—よã†ï¼Ž
  2. 赤ã„直方体ã®è‰²ã‚’黄ã«å¤‰ãˆã‚ˆã†ï¼Ž
  3. 赤ã„直方体ã®ä½ç½®ã‚’å·¦ã«ãšã‚‰ã—,中央ã®ç›´æ–¹ä½“ãŒåŽŸç‚¹ã«æ¥ã‚‹ã‚ˆã†ã«ã—ã¾ã—ょã†ï¼Ž
  4. 上ã®å•題ã§ï¼Œç›´æ–¹ä½“ã®è‰²ã‚’å…¨ã¦é•ã†è‰²ã«ã—ょã†ï¼Ž
  5. forループを2é‡ã«ã—,x軸方å‘ã«ã‚‚直方体をæç”»ã—,åˆè¨ˆ121個ã®ç›´æ–¹ä½“を表示ã—よã†ï¼Ž
  6. forループを3é‡ã«ã—,z軸方å‘ã«ã‚‚直方体をæç”»ã—,直方体ã®é–“隔も調整ã—ã¦ä¸Šå›³ã®ã‚ˆã†ãªãƒ”ラミッドを作ã‚ã†ï¼Ž

昔エジプトã«è¡Œãピラミッドã«å°‘ã—ã ã‘ç™»ã£ãŸã“ã¨ãŒã‚りã¾ã™ã€‚é ãã‹ã‚‰ã¯ãれã„ãªå››è§’éŒã«è¦‹ãˆã¾ã™ãŒã€å¤§ããªç«‹æ–¹ä½“ãŒç©ã¿é‡ã­ã‚‰ã‚Œã§ãã¦ã„ã¾ã™ã€‚残念ãªãŒã‚‰ä»Šã¯ç™»ã‚‹ã“ã¨ãŒç¦æ­¢ã•れã¦ã„るよã†ã§ã™ã­ã€‚

コメントをã©ã†ãž

メールアドレスãŒå…¬é–‹ã•れるã“ã¨ã¯ã‚りã¾ã›ã‚“。

22 views  (Since 2010-08-11)