<< unityに任意曲面データを取り込む | top | FightCode >>

スポンサーサイト

一定期間更新がないため広告を表示しています

スポンサードリンク | - | | - | - |

unityで最速降下曲線

unityでサイクロイド曲線にボール転がしてみた。

 

まずサイクロイド曲線のパラメータを決める必要がある。

θ=0で(x,y)=(0,0)とすると

x=A(θ-sinθ)

y=A(1-cosθ)

という式で表される。(0,0)と(x0,x0)を結ぶことにすると

A(θ0-sinθ0)=A(1-cosθ0)

となる。θ0について解けばθ0≒2.41201となる。あとは具体的にx0の値を決めればAも決まる。

x0=-10として次のコードでサイクロイドの座標を生成した。

 

#include <stdio.h>
#include <math.h>

int main()
{
    double theta0 = 2.41201;
    double x0 = -10, y0 = -10;
    double A = y0 / (1 - cos(theta0));

    for (double theta=0; theta<=theta0; theta+=0.05)
    {
        double x = A*(theta - sin(theta));
        double y = A*(1 - cos(theta));
        printf("%e %e¥n", x, y);
    }

    return 0;
}

 

座標データをjwcadに取り込んでdxfファイルに変換し、creo elementsに取り込んで坂を作成した。生成したstlファイルをblenderに取り込んでobjファイルをエクスポートすればunityにインポートできる。

creo elementsに取り込むときの注意としては、ちゃんと坂をワールド原点付近にとらないと、unityで配置するとき苦労する。

スタートゲートは上キーで開くようにした。

    void Update () {
       // Destroy(gameObject);
        if (Input.GetAxis("Vertical")!=0) Destroy(gameObject);
    }

ジャジャガッチ | コンピュータ | 22:56 | comments(0) | trackbacks(0) |

スポンサーサイト

スポンサードリンク | - | 22:56 | - | - |
Comment









Trackback
URL:

06
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--
>>
<<
--
PR
RECOMMEND
RECENT COMMENT
MOBILE
qrcode
OTHERS
Since 2013/09/17
LATEST ENTRY
CATEGORY
ARCHIVE
LINKS
PROFILE
SEARCH