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年6月19日 QorvoがSバンドレーダ用のBAW switched filter bank発表、Ericssonがミッションクリティカル用途のアンテナ発表、SEMCOが125℃保証の0201インチX7T 1.0㎌ 6.3V MLCC発表、iFixitがトルクスプラスねじについて解説(2025.06.19)
- 高周波・RFニュース 2025年6月18日 Qorvoが5Gインフラ向けBAWフィルタとプリドライバアンプ発表、KeysightとNTTらが300GHz帯で280Gbpsを達成する信号発生システム発表、TDKが自動車用パワー・オーバー・コアクス・インダクター発表、NordicがNeuton AI買収(2025.06.18)
- 高周波・RFニュース2025年6月17日 everythingRF magazineはIMS2025特別号、MITの6Gに向け光でディープラーニングを行うチップ論文、NGMNが6Gに向けたキーメッセージを出版、Litepoint、Spirent、ViaviのTest and Measurementのトレンドレポート(2025.06.17)
- 高周波・RFニュース 2025年6月16日 iFixitのSamsung Galaxy S25 Edge分解でCTスキャンで2階建て基板の内部や5Gミリ波アンテナモジュールが鮮明に見える、Microwave JournalでRFのヘテロジニアスインテグレーションとローデ・シュワルツの複数ポートをもつスペアナFSWX紹介(2025.06.16)
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース 2025年6月19日 QorvoがSバンドレーダ用のBAW switched filter bank発表、Ericssonがミッションクリティカル用途のアンテナ発表、SEMCOが125℃保証の0201インチX7T 1.0㎌ 6.3V MLCC発表、iFixitがトルクスプラスねじについて解説(2025.06.19)
- 高周波・RFニュース 2025年6月18日 Qorvoが5Gインフラ向けBAWフィルタとプリドライバアンプ発表、KeysightとNTTらが300GHz帯で280Gbpsを達成する信号発生システム発表、TDKが自動車用パワー・オーバー・コアクス・インダクター発表、NordicがNeuton AI買収(2025.06.18)
- 高周波・RFニュース2025年6月17日 everythingRF magazineはIMS2025特別号、MITの6Gに向け光でディープラーニングを行うチップ論文、NGMNが6Gに向けたキーメッセージを出版、Litepoint、Spirent、ViaviのTest and Measurementのトレンドレポート(2025.06.17)
- 高周波・RFニュース 2025年6月16日 iFixitのSamsung Galaxy S25 Edge分解でCTスキャンで2階建て基板の内部や5Gミリ波アンテナモジュールが鮮明に見える、Microwave JournalでRFのヘテロジニアスインテグレーションとローデ・シュワルツの複数ポートをもつスペアナFSWX紹介(2025.06.16)
« 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 »
コメント