ロジャー・ペンローズのツイスター理論を可視化

ツイスター理論
ロジャー・ペンローズが提唱している量子重力理論、スピノールと呼ばれるものを基本に考えて一般に言われているような時空構造という概念を使わずにこの宇宙全体を(物理学の現象全てを再構築して)説明しようとする壮大な考え(らしいが良く分かりません)

※スピノールというのは線形代数でいうスカラー、ベクトル、テンソルという座標変換による姿のあらわし方で分類される量と同じような分類で、ある種の変換によって分類されるもう一つの量です。(勘違いしないように!!スカラー、ベクトル、テンソル以外をスピノ-ルと言っているわけではないので)

意味のわからないことは置いておいてペンローズの理論を可視化する方法がイゴール・ロビンソンによって以外と簡易な数式で表現されているためWCCTLでも表現可能なので早速書いてみたのがこの図です。
※講談社の「ペンローズのねじれた四次元」時空をつくるツイスターの不思議のカバーにもなっている絵
※この本の付録に数式とMathematicaコードが出ているが具体的なカバー絵の書き方は示されていないので一工夫必要。

 
 
#% 
%data "Conv2.pkg"; 

extern zmin; 
extern zmax; 

extern _a; 
extern _theta; 

sub rho( omega, phi ) 

 a = _a; 
 theta = _theta; 

 s = a*(-tan(theta)*cos(omega+phi)+1/cos(theta)); 
 t = 1+tan(theta)*tan(theta)*sin(omega+phi)*sin(omega+phi); 

 u = s/t; 
 return (u ); 

sub srf(u, phi) 

 call rho(u, phi)->(s); 
 x = s*cos(phi); 
 y = s*sin(phi); 
 z = -s*tan(_theta)*sin(u+phi); 

 return ( x, y, z); 

 

up = 20; 
vp = 20; 
xmin =  0; 
xmax =  2*pai; 
ymin =  0; 
ymax =  2*pai; 

_a = 1.0; 
_theta = pai/10; 
call Conv2:prm( $srf, up, vp, xmin, xmax, ymin, ymax)->(Sbez); 
put 1; 
Sbez; 
trgmesh(Sbez,1,1); 

up = 20; 
vp = 20; 
xmin =  0; 
xmax =  2*pai; 
ymin =  0; 
ymax =  pai; 
_a = 1.0; 
_theta = pai/10; 
while( _a < 10 ){ 
 while( _theta < pai/2 ){ 
  call Conv2:prm( $srf, up, vp, xmin, xmax, ymin, ymax)->(Sbez); 
  put 1; 
  Sbez; 
  uvmesh(50,50);
  trgmesh(Sbez,1,1); 
  _theta = _theta + pai/10; 
 } 
 _a = _a + 5; 

end; 
 

※ここで表示しているGraphics画像はuvmesh(50,50)という結構、精密なメッシュによって作成しました。言うまでも無くWCCTLは演算速度は自慢にならないのろのろ運転なのでuvmeshの50,50という値は下げた方が早く処理できます。 inserted by FC2 system