UnityでVisual C#用の数値計算ライブラリMath.NET Numericsを使う(5) ルンゲクッタ法でローレンツ方程式を計算して、その軌道通りに球を3D画面で動かし、そこに軌跡が残るようにする。さらにカメラも回転させる。
さて今回はおなじみルンゲクッタ法でローレンツ方程式を解く。
↓をUnityに移植しよう。
Sphereを作って、そこにこのコードをアタッチする。
using UnityEngine;
using MathNet.Numerics;
using MathNet.Numerics.OdeSolvers;
using MathNet.Numerics.LinearAlgebra;
using System;
public class MathNET05 : MonoBehaviour
{
double[] t;
Vector<double>[] x;
int n;
int flame;
void Start()
{
double dt = 0.01;
double tmax = 200.0;
n = Convert.ToInt32(tmax / dt);
flame = 1;
t = Generate.LinearSpaced(n, 0.0, tmax);
var x0 = Vector<double>.Build.DenseOfArray(new double[] { 1.0, 1.0, 1.0 });
x = RungeKutta.FourthOrder(x0, 0.0, tmax, n, Lorenz);
}
void Update()
{
float dx = (float)x[flame][0] - (float)x[flame - 1][0];
float dy = (float)x[flame][1] - (float)x[flame - 1][1];
float dz = (float)x[flame][2] - (float)x[flame - 1][2];
transform.Translate(dx, dy, dz);
if (flame > n)
{
flame = 1;
} else {
flame += 1;
}
}
Vector<double> Lorenz(double t, Vector<double> x)
{
double s = 10.0, r = 28.0, b = 8.0 / 3.0;
double x_dot = s * (x[1] - x[0]);
double y_dot = r * x[0] - x[1] - x[0] * x[2];
double z_dot = x[0] * x[1] - b * x[2];
return Vector<double>.Build.DenseOfArray(new double[] { x_dot, y_dot, z_dot });
}
}
|
そこにTrail Rendererで軌跡を加える。だんだん消えるようにする。そうしてできたものは…
そう、こういうのがやりたくてUnity触っていたのだった。
さらにカメラを回転させると?
さすがUnity、こんなことが簡単にできる。
« UnityでVisual C#用の数値計算ライブラリMath.NET numericsを使う(4) 高速フーリエ変換(FFT)をしながらそのグラフを3D空間で動かす。 | トップページ | 高周波・RFニュース 2025年1月29日 3GPPがワークプラン更新、Microchipがチップサイズの原子時計発表、QorvoのNTNとRF-FEM解説、EricssonがCognitive Labs開設、Nokiaのドローン記事、Nordicの新PMIC »
「パソコン・インターネット」カテゴリの記事
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2025年2月7日 フジクラがMWCバルセロナでミリ波(28GHz,60GHz)モジュールデモ、Qorvo、NXP、AMDらのヘルスケアウェビナー、Samsung Galaxy S25もやはり5Gミリ波AiPは1個、u-bloxがBluetooth LEモジュール4種発表(2025.02.07)
- 高周波・RFニュース 2025年2月6日 3GPPがRel-20(5G Advancedと6G)の計画を公開、SEMCOが産業用MLCC(0805 inch, X6S, 22uF, 25V)と車載MLCC(1005,2.2uF,10V)を発表、KYOCERA AVXのスーパーキャパシタシミュレーションソフト、I向けフォトニックチップ解説(2025.02.06)
- 高周波・RFニュース 2025年2月5日 Mavenirの5G NTNホワイトペーパー、ミニサーキットの1.5mm角QFNパッケージMMIC、Keysigntがスペインに6G研究ラボ設立、アイルランドとスコットランドの大学がRIS(reconfigurable intelligent surfaces)で協力(2025.02.05)
- 高周波・RFニュース 2025年2月4日 Samsung Galaxy S25plus、S25ultra分解、やっぱり5Gミリ波AiPは1個だけ、スマートワイヤレス聴診器にNordicのICが採用、TDKのTMR角度センサ解説(2025.02.04)
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース 2025年2月7日 フジクラがMWCバルセロナでミリ波(28GHz,60GHz)モジュールデモ、Qorvo、NXP、AMDらのヘルスケアウェビナー、Samsung Galaxy S25もやはり5Gミリ波AiPは1個、u-bloxがBluetooth LEモジュール4種発表(2025.02.07)
- 高周波・RFニュース 2025年2月6日 3GPPがRel-20(5G Advancedと6G)の計画を公開、SEMCOが産業用MLCC(0805 inch, X6S, 22uF, 25V)と車載MLCC(1005,2.2uF,10V)を発表、KYOCERA AVXのスーパーキャパシタシミュレーションソフト、I向けフォトニックチップ解説(2025.02.06)
- 高周波・RFニュース 2025年2月5日 Mavenirの5G NTNホワイトペーパー、ミニサーキットの1.5mm角QFNパッケージMMIC、Keysigntがスペインに6G研究ラボ設立、アイルランドとスコットランドの大学がRIS(reconfigurable intelligent surfaces)で協力(2025.02.05)
- 高周波・RFニュース 2025年2月4日 Samsung Galaxy S25plus、S25ultra分解、やっぱり5Gミリ波AiPは1個だけ、スマートワイヤレス聴診器にNordicのICが採用、TDKのTMR角度センサ解説(2025.02.04)
« UnityでVisual C#用の数値計算ライブラリMath.NET numericsを使う(4) 高速フーリエ変換(FFT)をしながらそのグラフを3D空間で動かす。 | トップページ | 高周波・RFニュース 2025年1月29日 3GPPがワークプラン更新、Microchipがチップサイズの原子時計発表、QorvoのNTNとRF-FEM解説、EricssonがCognitive Labs開設、Nokiaのドローン記事、Nordicの新PMIC »
コメント