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

2009-06-12
By


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

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

Step1ã§ç‰©ä½“ã®æç”»ã‚’å­¦ã³ã¾ã—ãŸï¼Žã“ã“ã§ã¯åŒã˜ç‰©ä½“を何個もæç”»ã™ã‚‹æ–¹æ³•ã‚’å­¦ã³ã¾ã—ょã†ï¼Ž

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); // シミュレーションループ ウインドウã®å¹…,高
  return 0;
}

ホームワーク2

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

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

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

  1. ãŸãï¼  MonsterID Icon ãŸãï¼  on 2009-09-17

    ãŸã³ãŸã³ã™ã¿ã¾ã›ã‚“。
    インクルードファイルã‚ãŸã‚Šã«åŽŸå› ãŒã‚ã‚‹ã®ã‹ã¨æ€ã„dm1.hもインクルードã—ã¦ã¿ã‚‹ã¨ãƒ“ルドãŒé€šã‚Šã¾ã—ãŸã€‚
    ãŠé¨’ãŒã›ã—ã¦ã™ã¿ã¾ã›ã‚“ã§ã—ãŸã€‚

    ãŸã ã€æ ¹æœ¬çš„ãªåŽŸå› ãŒã‚ã‹ã‚‰ãšã˜ã¾ã„ãªã®ãŒæ®‹å¿µã§ã™ã€‚。

  2. ãŸãï¼  MonsterID Icon ãŸãï¼  on 2009-09-14

    ã“ã‚“ã«ã¡ã¯ã€‚
    サンプルプログラムをDLã—ã¦step2ã®ãƒ“ルドを実行ã—ã¦ã¿ã¾ã—ãŸãŒã€
    >step1.obj : error LNK2019: 未解決ã®å¤–部シンボル “void __cdecl dmLoop(int,int)” (?dmLoop@@YAXHH@Z) ãŒé–¢æ•° _main ã§å‚ç…§ã•れã¾ã—ãŸã€‚
    1>.\step1.exe : fatal error LNK1120: 外部å‚ç…§ 1 ãŒæœªè§£æ±ºã§ã™
    ã¨å‡ºã¦å®Ÿè¡Œãƒ•ァイルãŒä½œæˆã•れã¾ã›ã‚“。

    ãŸã ã€C:\ode-0.11.1:\lib:\DebugDoubleLib:\ode_double.libã¯ã‚りã¾ã™ã€‚
    ã¾ãŸã€ã“ã®ãƒ—ロジェクトファイルã®ä½ç½®ã¯
    C:\ode-0.11.1:\mypgm:\step2 ã§ã™ã€‚

    ã„ã‚ã„ã‚ã‚„ã£ã¦ã¿ãŸã‚‚ã®ã®ä¸€å‘ã«è§£æ±ºã—ãªã„ã®ã§ã€ã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚

  3. demu MonsterID Icon demu on 2009-09-17

    返事ãŒé…れã¦ã™ã¿ã¾ã›ã‚“。今週ã¯ãšã£ã¨å‡ºå¼µã§ã—ãŸã€‚

    ã•ã¦ã€å•題ãŒè§£æ±ºã—ã¦ãªã«ã‚ˆã‚Šã§ã™ã€‚

    根本的ãªåŽŸå› ãŒã‚ã‹ã‚‰ãªã„ã¨ã¯ã€ãªã«ã‹æœªè§£æ±ºã®å•é¡ŒãŒæ®‹ã£ã¦ã„ã‚‹ã®ã§ã™ã‹ï¼Ÿ

    ã§ã‚€

  4. ãŸãï¼  MonsterID Icon ãŸãï¼  on 2009-09-22

    ãŠå¿™ã—ã„ã¨ã“ã‚返信ã—ã¦ã„ãŸã ãã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
    今回ã®å•題ã§ã™ãŒã€”ode_double.lib”ã¯ã¡ã‚ƒã‚“ã¨ç¢ºèªã§ãã‚‹ã®ã«ãƒªãƒ³ã‚¯ã‚¨ãƒ©ãƒ¼ã«ãªã£ã¦ã—ã¾ã†ã¨ã„ã†ã“ã¨ã§ã€
    éŽåŽ»ã®è³ªå•ãªã©ã‚‚å‚ç…§ã—ã¾ã—ãŸãŒã€ä»Šå›žã®åŽŸå› ã«ã¯ã¤ãªãŒã‚‰ãªã„æ§˜ã«æ€ã„ã¾ã™ã€‚(環境設定ã®ãƒŸã‚¹ç­‰ãŒåŽŸå› ãªã‚‰ã€dm1.hã§ã‚‚ビルドãŒé€šã‚‰ãªã„ã¯ãšã ã‹ã‚‰ã§ã™ã€‚)

    ãã“ã§dm1.hã¨dm2.hを見比ã¹ã¦ã¿ãŸã®ã§ã™ãŒã€”dmLoop”ã«é–¢ã™ã‚‹ãƒ—ログラムã®é•ã„ãŒã‚ã‹ã‚‰ãšã€ãªãœdm1.hもインクルードã™ã‚‹ã“ã¨ã§ãƒ“ルドãŒé€šã£ãŸã®ã‹ãŒã‚ã‹ã‚Šã¾ã›ã‚“。

    ã¡ãªã¿ã«dm3.hã‚‚åŒæ§˜ã®ã‚¨ãƒ©ãƒ¼ãŒå‡ºã¦ã—ã¾ã„ã€dm1.hを一緒ã«ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ã™ã‚‹ã“ã¨ã§ãƒ“ルドãŒé€šã‚Šã¾ã—ãŸã€‚

    ã¡ãªã¿ã«ç’°å¢ƒã¯
    WindowsXP sp3
    VC++2008EE
    ode本体ã¯Cドライブ直下

    以上ã€ã‚ˆã‚ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚

コメントをã©ã†ãž

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

2,118 views  (Since 2010-08-11)