【Unity】曲線のプログラムを色々作ってみた 4 kt. 2023年4月9日 12:37 曲線のプログラムを色々作ってみたものをTwitterにアップしたので忘備録としてまとめておきます。制作に当たって下記のサイトさまを参考にさせて頂きました。 曲線のカタログ www.ne.jp 4.2 三角関数 | Yasushi Noguchi Class さて、プログラムによって図形を描く場合に避けて通れないのが三角関数(サイン、コサイン)です。円などに代表される r-dimension.xsrv.jp 八の字メモ:曲線のプログラムを色々試したので忘備録。八の字float A1 = 8f;float ds = 0.5f;x = A1 * Mathf.Sin(rad) * ds;y = A1 * Mathf.Sin(rad * 2) * ds;rad += 0.02f;(続#Unity #gamedev pic.twitter.com/qQScFjUaeW— kt. (@xxxx_kt_xxxx) December 24, 2022 アステロイドアステロイド、A2A3の値を変えると色々変化float A1 = 4f;float A2 = 1f;float A3 = 1f;x = A1 * Mathf.Pow(Mathf.Cos(rad * A2), 3);y = A1 * Mathf.Pow(Mathf.Sin(rad * A3), 3);rad += 0.02f;(続 pic.twitter.com/gQisj5JBJb— kt. (@xxxx_kt_xxxx) December 24, 2022 リサジューリサジュー。w1, w2, p1, p2の数値を変えると図形が変化float A1 = 4f;float A2 = 4f;float w1 = 2f;float w2 = 3f;float p1 = 0f;float p2 = 0f;x = A1 * Mathf.Sin(w1 * rad + p1);y = A2 * Mathf.Sin(w2 * rad + p2);rad -= 0.01f;(続 pic.twitter.com/YrPiDJdCBx— kt. (@xxxx_kt_xxxx) December 24, 2022 サイクロイドサイクロイドds = 0.9f;float A1 = 0.4f;x = A1 * (rad - Mathf.Sin(ds * rad));y = A1 * (1 - Mathf.Cos(ds * rad));rad += 0.1f;(続 pic.twitter.com/DcuyuaecDJ— kt. (@xxxx_kt_xxxx) December 24, 2022 トロコイドトロコイド(A1 = A2の時にはサイクロイドになる)ds = 0.9f;float A1 = 0.4f;float A2 = 0.8f;x = A1*(rad) - A2* Mathf.Sin(rad);y = A1 - A2* Mathf.Cos(rad);rad += 0.1f;(続 pic.twitter.com/Rl1nAX9Yfj— kt. (@xxxx_kt_xxxx) December 24, 2022 内サイクロイド内サイクロイドds = 0.5f;float A1 = 5f;float A2 = 1f;x = ((A1 - A2) * Mathf.Cos(rad * 1 * ds)) + (A2 * Mathf.Cos((((A1 - A2) / A2) * rad)));y = ((A1 - A2) * Mathf.Sin(rad * 1 * ds)) - (A2 * Mathf.Sin((((A1 - A2) / A2) * rad)));rad += 0.02f;(続 pic.twitter.com/afwRuJIi8V— kt. (@xxxx_kt_xxxx) December 24, 2022 内トロコイド内トロコイド(A2 = A3内サイ)ds = 0.5f;float A1 = 5f;float A2 = 1f;float A3 = 2f;x = ((A1 - A2) * Mathf.Cos(rad * 1 * ds)) + (A3 * Mathf.Cos((((A1 - A2) / A2) * rad)));y = ((A1 - A2) * Mathf.Sin(rad * 1 * ds)) - (A3 * Mathf.Sin((((A1 - A2) / A2) * rad)));rad += 0.02f;(続 pic.twitter.com/7H4HOi4Zyi— kt. (@xxxx_kt_xxxx) December 24, 2022 外サイクロイド外サイクロイド(A1=A2とした曲線はネフロイド)ds = 0.5f;float A1 = 3f;float A2 = 1f;x = ((A1 + A2) * Mathf.Cos(rad * 1 * ds)) - (A2 * Mathf.Cos((((A1 + A2) / A2) * rad)));y = ((A1 + A2) * Mathf.Sin(rad * 1 * ds)) - (A2 * Mathf.Sin((((A1 + A2) / A2) * rad)));rad += 0.02f;(続 pic.twitter.com/A8qxV8wEHX— kt. (@xxxx_kt_xxxx) December 24, 2022 外トロコイド外トロコイド(A2 = A3外サイ)ds = 0.5f;float A1 = 2f;float A2 = 1f;float A3 = 2f;x = ((A1 + A2) * Mathf.Cos(rad * 1 * ds)) - (A3 * Mathf.Cos((((A1 + A2) / A2) * rad)));y = ((A1 + A2) * Mathf.Sin(rad * 1 * ds)) - (A3 * Mathf.Sin((((A1 + A2) / A2) * rad)));rad += 0.02f;(続 pic.twitter.com/TiiobZr6YQ— kt. (@xxxx_kt_xxxx) December 24, 2022 レムニスケートレムニスケートds = 0.5f;float A1 = 5f;x = A1 * Mathf.Cos(rad * ds) / (1 + Mathf.Pow(Mathf.Sin(rad * ds), 2));y = A1 * Mathf.Sin(rad * ds) * Mathf.Cos(rad * ds) / (1 + Mathf.Pow(Mathf.Sin(rad * ds), 2));rad += 0.05f;(続 pic.twitter.com/QUeG0T96oQ— kt. (@xxxx_kt_xxxx) December 24, 2022 カーディオイドカーディオイドds=0.2f;float A1 = 3.5f;x = (A1 * (1 + Mathf.Cos(rad * ds)) * Mathf.Cos(rad * ds));y = (A1 * (1 + Mathf.Cos(rad * ds)) * Mathf.Sin(rad * ds));rad += 0.1f;(続 pic.twitter.com/9cs3s4E4SJ— kt. (@xxxx_kt_xxxx) December 24, 2022 バイフォリウムバイフォリウムds = 0.1f;float A1 = 20f;x = A1 * Mathf.Sin(rad * ds) * Mathf.Pow(Mathf.Cos(rad * ds), 3);y = A1 * Mathf.Pow(Mathf.Sin(rad * ds), 2) * Mathf.Pow(Mathf.Cos(rad * ds), 2);rad += 0.1f;(続 pic.twitter.com/wTV0Mlda1C— kt. (@xxxx_kt_xxxx) December 24, 2022 バラ曲線1バラ曲線(A1とA2を変化させると良い)ds = 0.2f;float A1 = 2;float A2 = 1;float A3 = 6;//全体の大きさx = A3 * (Mathf.Sin((A1 * rad * ds) / A2) * Mathf.Cos(rad * ds));y = A3 * (Mathf.Sin((A1 * rad * ds) / A2) * Mathf.Sin(rad * ds));rad += 0.1f;(続 pic.twitter.com/R1TXULhmYJ— kt. (@xxxx_kt_xxxx) December 24, 2022 バラ曲線2バラ曲線(A1とA2を変化させると良い)ds = 0.2f;float A1 = 2;float A2 = 3;float A3 = 6;//全体の大きさx = A3 * (Mathf.Sin((A1 * rad * ds) / A2) * Mathf.Cos(rad * ds));y = A3 * (Mathf.Sin((A1 * rad * ds) / A2) * Mathf.Sin(rad * ds));rad += 0.1f;(続 pic.twitter.com/ZuS4ZqB76c— kt. (@xxxx_kt_xxxx) December 24, 2022 バラ曲線3バラ曲線(A1とA2を変化させると良い)ds = 0.2f;float A1 = 5;float A2 = 2;float A3 = 6;//全体の大きさx = A3 * (Mathf.Sin((A1 * rad * ds) / A2) * Mathf.Cos(rad * ds));y = A3 * (Mathf.Sin((A1 * rad * ds) / A2) * Mathf.Sin(rad * ds));rad += 0.1f;(続 pic.twitter.com/bi3BCkzG8S— kt. (@xxxx_kt_xxxx) December 24, 2022 螺旋螺旋ds = 0.4f;float A1 = 0.1f;x = A1 * rad * Mathf.Cos(rad * ds);y = A1 * rad * Mathf.Sin(rad * ds);rad += 0.1f;(終 pic.twitter.com/xtQm9Fj1VC— kt. (@xxxx_kt_xxxx) December 24, 2022 ダウンロード copy いいなと思ったら応援しよう! チップで応援する #Unity #gamedev 4