Yukterez

Raytracer (All in 1, Raindrop Doran)

May 30th, 2020 (edited)
187
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  2. (* > raytracing.yukterez.net | 07.04.2018 - 09.09.2020 | Version 20 | Simon Tyran, Vienna *)
  3. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  4.  
  5. Pause[1] (* Raindrop Doran Koordinaten *)
  6.  
  7. wp = MachinePrecision;
  8. mt0 = Automatic;
  9. mt1 = {"StiffnessSwitching", Method-> {"ExplicitRungeKutta", Automatic}};
  10. mta = mt0; (* mt0 for speed, mt1 for accuracy *)
  11.  
  12. kernels = 6; (* Parallelisierung *)
  13. grain = 5; (* Subparallelisierung auf kernels*grain Streifen *)
  14. rsp = "Nearest"; (* Resampling *)
  15.  
  16. breite = 60; (* Zielabmessungen in Pixeln *)
  17. hoehe = 30; (* Höhe sollte ein ganzzahliges Vielfaches von kernels*grain sein *)
  18. zoom = 1; (* doppelter Zoom ergibt halben Sichtwinkel *)
  19.  
  20. LaunchKernels[kernels]
  21. wp = MachinePrecision; (* Genauigkeit *)
  22. st = 0.1; (* Auflösung des Gradienten *)
  23.  
  24. pic1 = Import["http://www.yukterez.net/mw/2/flip70.png"]; (* Hintergrundpanorama laden *)
  25. pic2 = Import["http://www.yukterez.net/mw/2/worldmap.png"]; (* Sphärenoberfläche laden *)
  26. pic3 = Import["http://www.yukterez.net/mw/akkretionsscheibe.jpg"];(* Scheibentextur laden *)
  27. pic4 = Import["http://www.yukterez.net/mw/disk.png"]; (* Scheibengeometrie laden *)
  28. pic5 = Import["http://www.yukterez.net/mw/gradient1.png"]; (* Helligkeitsgradient laden *)
  29. pic6 = Import["http://www.yukterez.net/mw/gradient2.png"]; (* Farbgradient laden *)
  30. pic7 = Import["http://www.yukterez.net/mw/2/bw.png"]; (* Checkerboard laden *)
  31.  
  32. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  33. (* 1) Startbedingungen und Position des Beobachters ||||||||||||||||||||||||||||||||||||| *)
  34. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  35.  
  36. r0 = 10; (* Radialkoordinate des Beobachters *)
  37. R0 = 500; (* Radius des umspannenden Kugelschalenpanoramas *)
  38. R1 = Max[1, Re[1.0001 rA]]; (* Sphäre *)
  39. rT = 10; (* Lichtlaufzeit Synchronisation *)
  40. t0 = 0; (* Eigenzeit des Beobachters *)
  41.  
  42. si = isco+0.1; (* Akkretionsscheibe Innenradius *)
  43. sr = 7; (* Akkretionsscheibe Außenradius *)
  44.  
  45. θ0 = 70 π/180; (* Breitengrad *)
  46. φ0 = 0; (* Längengrad *)
  47.  
  48. tmax = -100 R0; (* zeitlicher Integrationsbereich *)
  49.  
  50. a = 0.7; (* Spinparameter *)
  51. ℧ = 0.7; (* spezifische Ladung des schwarzen Lochs *)
  52. v0 = 1; (* Geschwindigkeit der Photonen *)
  53.  
  54. vr = 0; (* Radiale Geschwindigkeit relativ zum Raindrop *)
  55. vϑ = 0; (* Polare Geschwindigkeit des Beobachters *)
  56. vφ = 0; (* Azimutale Geschwindigkeit des Beobachters: 0 für ZAMO, -й0 für stationär *)
  57.  
  58. vL = Sqrt[vr^2+vϑ^2+vφ^2];
  59.  
  60. hvs = 0; (* ArcSin[vφ/vL] *) (* horizontaler Versatz in Radianten *)
  61. vvs = 0; (* ArcSin[vϑ/vL] *) (* vertikaler Versatz in Radianten *)
  62.  
  63. fmax = 2; fmin = 0; (* Doppler Frequenzbereich *)
  64.  
  65. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  66. (* 2) Bildreflektion |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  67. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  68.  
  69. fpt[{x_, y_}] := {If[y<0, x+1, x], If[y<0, -y, y]}
  70.  
  71. pcr1 = ParallelTable[
  72. Quiet@ImageTransformation[pic1, fpt, DataRange->{{-1, 1}, {0, 1}},
  73. PlotRange->{{-1, 1}, {-1+(x-1)/kernels, -1+x/kernels}},
  74. Resampling->rsp, Padding->"Periodic"],
  75. {x, 1, 2 kernels}];
  76. pct1 = ImageAssemble[Table[{pcr1[[x]]}, {x, 2 kernels, 1, -1}]];
  77.  
  78. pcr2 = ParallelTable[
  79. Quiet@ImageTransformation[pic2, fpt, DataRange->{{-1, 1}, {0, 1}},
  80. PlotRange->{{-1, 1}, {-1+(x-1)/kernels, -1+x/kernels}},
  81. Resampling->rsp, Padding->"Periodic"],
  82. {x, 1, 2 kernels}];
  83. pct2 = ImageAssemble[Table[{pcr2[[x]]}, {x, 2 kernels, 1, -1}]];
  84.  
  85. pcr3 = ParallelTable[
  86. ImageTransformation[pic7, fpt, DataRange->{{-1, 1}, {0, 1}},
  87. PlotRange->{{-1, 1}, {-1+(x-1)/kernels, -1+x/kernels}}, Resampling->rsp, Padding->"Periodic"],
  88. {x, 1, 2 kernels}];
  89. pct3 = ImageAssemble[Table[{pcr3[[x]]}, {x, 2 kernels, 1, -1}]];
  90.  
  91. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  92. (* 3) Funktionen |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  93. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  94.  
  95. g11 = gtt = 1+(-4 r0+2 ℧^2)/(a^2+2 r0^2+a^2 Cos[2 θ0]);
  96. g22 = grr = -((a^2+2 r0^2+a^2 Cos[2 θ0])/(2 (a^2+r0^2)));
  97. g33 = gθθ = -r0^2-a^2 Cos[θ0]^2;
  98. g44 = gφφ = (-(a^2+r0^2)^2 Sin[θ0]^2+a^2 (a^2+(-2+r0) r0+℧^2) Sin[θ0]^4)/(r0^2+a^2 Cos[θ0]^2);
  99. g12 = gtr = -(Sqrt[2 r0-℧^2]/Sqrt[a^2+r0^2]);
  100. g14 = gtφ = (a (2 r0-℧^2) Sin[θ0]^2)/(r0^2+a^2 Cos[θ0]^2);
  101. g24 = grφ = (a Sqrt[2 r0-℧^2] Sin[θ0]^2)/Sqrt[a^2+r0^2];
  102. g13 = g23 = g34 = 0;
  103.  
  104. rA = 1+Sqrt[1-a^2-℧^2];
  105. rI = 1-Sqrt[1-a^2-℧^2];
  106. rE = 1+Sqrt[1-℧^2-a^2 Cos[θ0]^2];
  107. rG = 1-Sqrt[1-℧^2-a^2 Cos[θ0]^2];
  108.  
  109. q = 0;
  110.  
  111. Σ = r0^2+a^2 Cos[θ0]^2;
  112. Δ = r0^2-2 r0+a^2+℧^2;
  113. Χ = (r0^2+a^2)^2-a^2 Sin[θ0]^2 Δ;
  114.  
  115. Σs[rs_] := rs^2;
  116. Δs[rs_] := rs^2-2 rs+a^2+℧^2;
  117. Χs[rs_] := (rs^2+a^2)^2-a^2 Δs[rs];
  118. κs[rs_] := a;
  119.  
  120. Σj[rt_, θt_] := rt^2+a^2 Cos[θt]^2;
  121. Δj[rt_, θt_] := rt^2-2 rt+a^2+℧^2;
  122. Χj[rt_, θt_] := (rt^2+a^2)^2-a^2 Sin[θt]^2 Δj[rt, θt];
  123. ωj[rt_, θt_] := (a(2 rt-℧^2))/Χj[rt, θt];
  124. ωR1 = ωj[R1, π/2];
  125.  
  126. ς = Abs@Sqrt[Χ/Δ/Σ]; ςr[rs_] := Abs@Sqrt[Χs[rs]/Δs[rs]/Σs[rs]];
  127. μ = If[Abs[N@v0]==1.0, 0, -1];
  128.  
  129. j[v_] := Sqrt[1-v^2];
  130. Ы[rs_] := Sqrt[Χs[rs]/Σs[rs]];
  131. ωs[rs_] := (a (2 rs - ℧^2))/Χs[rs];
  132.  
  133. ε[rs_, vt_] := Sqrt[Δs[rs] Σs[rs]/Χs[rs]]/j[vt]+Lz[rs, vt] ωs[rs];
  134. Lz[rs_, vt_] := vt Ы[rs]/j[vt];
  135.  
  136. nq[x_] := If[NumericQ[x], If[Element[x, Reals], x, 0], 0];
  137.  
  138. dΘF = Quiet[If[vLF==0, 0, ArcCos[-vθF/Sqrt[vrF^2+vθF^2+vφF^2]]]];
  139. dθF = Quiet[If[vLF==0, 0, If[vrF>0, -dΘF, +dΘF]]];
  140. dΦF = Quiet[If[vLF==0, 0, ArcTan[Abs[vφF]/vrF]]];
  141. dφF = Quiet[If[vLF==0, 0, If[vrF!=0, -1, 1] If[vφF<0, +1, -1] If[NumericQ[dΦF], dΦF, π/2]]];
  142.  
  143. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  144. (* 4) Geschwindigkeitskomponenten ||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  145. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  146.  
  147. εj[rt_, δt_, δr_, δθ_, δφ_] := (δt-δr Sqrt[(2rt-℧^2)/(a^2+rt^2)]/(1-(2rt-℧^2)/(a^2+
  148. rt^2))) (1-(2 rt-℧^2)/rt^2)+(a (δφ-δr a Sqrt[(2rt-℧^2)/(a^2+rt^2)]/(1-(2rt-℧^2)/(a^2+
  149. rt^2))/(a^2+rt^2)) (2 rt-℧^2))/rt^2;
  150.  
  151. vrj[rt_, δt_, δr_, δθ_, δφ_] := δr/Sqrt[Δj[rt, θt]] Sqrt[Σj[rt, π/2]];
  152. vθj[rt_, δt_, δr_, δθ_, δφ_] := δθ Sqrt[Σj[rt, π/2]];
  153. vφj[rt_, δt_, δr_, δθ_, δφ_] := (-(((a^2 Cos[(π/2)]^2+rt^2) (a^2+℧^2-2 rt+
  154. rt^2) Sin[(π/2)] (-(δφ-δr a Sqrt[(2rt-℧^2)/(a^2+rt^2)]/(1-(2rt-℧^2)/(a^2+rt^2))/(a^2+rt^2))-
  155. (a q ℧ rt)/((a^2 Cos[(π/2)]^2+rt^2) (a^2+℧^2-2 rt+rt^2))+
  156. (εj[rt, δt, δr, δθ, δφ] Csc[(π/2)]^2 (a (-a^2-℧^2+2 rt-rt^2) Sin[(π/2)]^2+a (a^2+
  157. rt^2) Sin[(π/2)]^2))/((a^2 Cos[(π/2)]^2+rt^2) (a^2+℧^2-2 rt+rt^2))+(a q ℧ rt (a^2+
  158. ℧^2-2 rt+rt^2-a^2 Sin[(π/2)]^2))/((a^2 Cos[(π/2)]^2+rt^2)^2 (a^2+℧^2-2 rt+
  159. rt^2))))/((a^2+℧^2-2 rt+rt^2-a^2 Sin[(π/2)]^2) Sqrt[((a^2+rt^2)^2-
  160. a^2 (a^2+℧^2-2 rt+rt^2) Sin[(π/2)]^2)/(a^2 Cos[(π/2)]^2+rt^2)])));
  161.  
  162. vtj[rt_, δt_, δr_, δθ_, δφ_] := Sqrt[vrj[rt, δt, δr, δθ, δφ]^2+
  163. vθj[rt, δt, δr, δθ, δφ]^2+vφj[rt, δt, δr, δθ, δφ]^2];
  164. vφt[rt_, δt_, δr_, δθ_, δφ_] := vφj[rt, δt, δr, δθ, δφ]/vtj[rt, δt, δr, δθ, δφ];
  165. shf[rt_, δt_, δr_, δθ_, δφ_] := Abs[ς/ςr[rt] Sqrt[1-vs[rt]^2]/(1-vs[rt] vφt[rt, δt, δr, δθ, δφ])];
  166.  
  167. dφv[rt_, tt_] := tt φs[rt]/ts[rt];
  168.  
  169. vsolve = Block[{r=r0, θ=θ0, μ=-1, q=0},
  170.  
  171. ini = NSolve[
  172. vr ==
  173. (Sqrt[2] Sqrt[1-μ^2 vL^2] ((q μ^2 ℧ r Sqrt[-℧^2+2 r] vL^2)/((a^2+℧^2+
  174. (-2+r) r) Sqrt[a^2+r^2])+((a^2+a^2 Cos[2 θ]+2 r^2) dR)/(2 (a^2+r^2))+(Sqrt[-℧^2+2 r] (dT-
  175. a Sin[θ]^2 dΦ))/Sqrt[a^2+r^2]))/Sqrt[(a^2+a^2 Cos[2 θ]+2 r^2)/(a^2+r^2)]
  176. &&
  177. vϑ ==
  178. Sqrt[a^2 Cos[θ]^2+r^2] Sqrt[1-μ^2 vL^2] dΘ
  179. &&
  180. vφ ==
  181. (Sin[θ]^2 Sqrt[1-μ^2 vL^2] (a q μ^2 ℧ r Sqrt[a^2+r^2] vL^2-1/2 a Sqrt[-℧^2+2 r] (a^2+
  182. a^2 Cos[2 θ]+2 r^2) dR+Sqrt[a^2+r^2] (a (℧^2-2 r) dT+((a^2+r^2)^2-a^2 (a^2+℧^2-2 r+
  183. r^2) Sin[θ]^2) dΦ)))/(Sqrt[a^2+r^2] (a^2 Cos[θ]^2+r^2) Sqrt[(Sin[θ]^2 ((a^2+r^2)^2-
  184. a^2 (a^2+℧^2-2 r+r^2) Sin[θ]^2))/(a^2 Cos[θ]^2+r^2)])
  185. &&
  186. -μ ==
  187. -(((a^2+2 r^2+
  188. a^2 Cos[2 θ]) (dR)^2)/(2 (a^2+r^2)))-(2 Sqrt[2 r-℧^2] dR dT)/Sqrt[a^2+r^2]+(1+(-4 r+
  189. 2 ℧^2)/(a^2+2 r^2+a^2 Cos[2 θ])) (dT)^2+(-r^2-a^2 Cos[θ]^2) dΘ^2+(2 a Sqrt[2 r-
  190. ℧^2] Sin[θ]^2 dR dΦ)/Sqrt[a^2+r^2]+(2 a (2 r-℧^2) Sin[θ]^2 dT dΦ)/(r^2+a^2 Cos[θ]^2)+
  191. ((-(a^2+r^2)^2 Sin[θ]^2+a^2 (a^2+(-2+r) r+℧^2) Sin[θ]^4) (dΦ)^2)/(r^2+a^2 Cos[θ]^2)
  192. &&
  193. dT > 0,
  194. {dT, dR, dΘ, dΦ},
  195. Reals];
  196.  
  197. β = -Sqrt[(2r-℧^2)/(a^2+r^2)];
  198.  
  199. drf = (dR/.ini[[1]]);
  200. dθf = (dΘ/.ini[[1]]);
  201. dΔf = drf a β/(1-β^2)/(a^2+r^2);
  202. dφf = (dΦ/.ini[[1]])-dΔf;
  203. dφF = (dΦ/.ini[[1]])+dΔf;
  204.  
  205. {
  206. NSolve[
  207. vrf ==
  208. Sqrt[(a^2 Cos[θ]^2+r^2)/(a^2+℧^2-2 r+r^2)] Sqrt[1-μ^2 v0f^2] drf
  209. &&
  210. vϑf == Sqrt[a^2 Cos[θ]^2+r^2] Sqrt[1-μ^2 v0f^2] dθf
  211. &&
  212. vφf == (Sin[θ]^2 Sqrt[1-μ^2 v0f^2] (a q μ^2 ℧ r v0f^2+a (℧^2-2 r) dtf+((a^2+r^2)^2-
  213. a^2 (a^2+℧^2-2 r+r^2) Sin[θ]^2) dφf))/((a^2 Cos[θ]^2+r^2) Sqrt[(Sin[θ]^2 ((a^2+
  214. r^2)^2-a^2 (a^2+℧^2-2 r+r^2) Sin[θ]^2))/(a^2 Cos[θ]^2+r^2)])
  215. &&
  216. v0f == Sqrt[vrf^2+vϑf^2+vφf^2]
  217. &&
  218. -μ == -(((r^2+a^2 Cos[θ]^2) drf^2)/(a^2-2 r+r^2+℧^2))+((a^2-2 r+r^2+℧^2-
  219. a^2 Sin[θ]^2) (dtf)^2)/(r^2+a^2 Cos[θ]^2)+(-r^2-a^2 Cos[θ]^2) dθf^2+(2 a (2 r-
  220. ℧^2) Sin[θ]^2 dtf dφf)/(r^2+a^2 Cos[θ]^2)+((-(a^2+r^2)^2 Sin[θ]^2+a^2 (a^2-2 r+
  221. r^2+℧^2) Sin[θ]^4) dφf^2)/(r^2+a^2 Cos[θ]^2)
  222. &&
  223. dtf>0,
  224. {dtf, vrf, vϑf, vφf, v0f}],
  225.  
  226. NSolve[
  227. vrf ==
  228. Sqrt[(a^2 Cos[θ]^2+r^2)/(a^2+℧^2-2 r+r^2)] Sqrt[1-μ^2 v0f^2] drf
  229. &&
  230. vϑf == Sqrt[a^2 Cos[θ]^2+r^2] Sqrt[1-μ^2 v0f^2] dθf
  231. &&
  232. vφf == (Sin[θ]^2 Sqrt[1-μ^2 v0f^2] (a q μ^2 ℧ r v0f^2+a (℧^2-2 r) dtf+((a^2+r^2)^2-
  233. a^2 (a^2+℧^2-2 r+r^2) Sin[θ]^2) dφF))/((a^2 Cos[θ]^2+r^2) Sqrt[(Sin[θ]^2 ((a^2+
  234. r^2)^2-a^2 (a^2+℧^2-2 r+r^2) Sin[θ]^2))/(a^2 Cos[θ]^2+r^2)])
  235. &&
  236. v0f == Sqrt[vrf^2+vϑf^2+vφf^2]
  237. &&
  238. -μ == -(((r^2+a^2 Cos[θ]^2) drf^2)/(a^2-2 r+r^2+℧^2))+((a^2-2 r+r^2+℧^2-
  239. a^2 Sin[θ]^2) (dtf)^2)/(r^2+a^2 Cos[θ]^2)+(-r^2-a^2 Cos[θ]^2) dθf^2+(2 a (2 r-
  240. ℧^2) Sin[θ]^2 dtf dφF)/(r^2+a^2 Cos[θ]^2)+((-(a^2+r^2)^2 Sin[θ]^2+a^2 (a^2-2 r+
  241. r^2+℧^2) Sin[θ]^4) dφF^2)/(r^2+a^2 Cos[θ]^2)
  242. &&
  243. dtf>0,
  244. {dtf, vrf, vϑf, vφf, v0f}]
  245. }];
  246.  
  247. vrFx = Quiet[vrf/.vsolve[[1]]][[1]];
  248. vθFx = Quiet[vϑf/.vsolve[[1]]][[1]];
  249. vφFx = Quiet[vφf/.vsolve[[1]]][[1]];
  250.  
  251. VrFx = Quiet[vrf/.vsolve[[2]]][[1]];
  252. VθFx = Quiet[vϑf/.vsolve[[2]]][[1]];
  253. VφFx = Quiet[vφf/.vsolve[[2]]][[1]];
  254.  
  255. vθF = Quiet[Re[vθFx]+Im[vθFx]];
  256. vφF = Quiet[Re[vφFx]+Im[vφFx]];
  257. vLF = Quiet[Sqrt[vrFx^2+vθF^2+vφF^2]];
  258. vrF = Quiet[If[vLF<1,vrFx,-vrFx]];
  259.  
  260. VθF = Quiet[Re[VθFx]+Im[VθFx]];
  261. VφF = Quiet[Re[VφFx]+Im[VφFx]];
  262. VLF = Quiet[Sqrt[VrFx^2+VθF^2+VφF^2]];
  263. VrF = Quiet[If[VLF<1,VrFx,-VrFx]];
  264.  
  265. vθ =-vϑ;
  266. θs = π/2;
  267. θi =-θ0+π;
  268.  
  269. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  270. (* 5) Photonensphäre und ISCO ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  271. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  272.  
  273. rp = ц/.Solve[4 a^2 (ц-℧^2)-(ц^2-3 ц+2 ℧^2)^2==0 && ц>=If[Element[rA, Reals], rA, 0], ц];
  274. rP = 1.01 Min[rp]; Rp = 1.01 Max[rp];
  275. isco = Quiet[Min[RI/.NSolve[0 == RI (6 RI-RI^2-9 ℧^2+3 a^2)+4 ℧^2 (℧^2-a^2)-8 a (RI-
  276. ℧^2)^(3/2) && RI>=If[Element[rA, Reals], rA, 0], RI]]];
  277. {"r horizon" -> N@rA, "r ergosphere" -> N@rE, "r isco" -> N@isco,
  278. "r photon pro" -> N@Min[rp], "r photon ret" -> N@Max[rp], "r disk" -> N@sr,
  279. "r observer" -> N@r0, "θ observer" -> N@θ0 180/π}
  280.  
  281. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  282. (* 6) Geschwindigkeit und Zeitdilatation auf der Scheibe |||||||||||||||||||||||||||||||| *)
  283. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  284.  
  285. red[rs_] := Quiet[Reduce[
  286. dt == (Lz[rs, vt] (-a (a^2+rs^2)+Δs[rs] κs[rs])+ε[rs, vt] ((a^2+rs^2)^2-
  287. Δs[rs] κs[rs]^2))/(Δs[rs] Σs[rs])
  288. &&
  289. 0 == ((a^2+(-2+rs) rs+℧^2) (16 a dt dΦ rs (rs-℧^2)+8 dt^2 rs (-rs+℧^2)+
  290. dΦ^2 rs (8 rs (-a^2+rs^3)+a^2 (4 a^2+4 ℧^2-4 (a-℧) (a+℧)))))/(8 rs^6)
  291. &&
  292. dΦ == (Lz[rs, vt] (-a^2+Δs[rs])+ε[rs, vt] (a (a^2+rs^2)-Δs[rs] κs[rs]))/(Δs[rs] Σs[rs])
  293. &&
  294. vt > 0,
  295. {vt, dΦ, dt},
  296. Reals]];
  297.  
  298. vs = Interpolation[ParallelTable[{rr, If[Quiet@NumericQ[red[rr][[1, 2]]],
  299. red[rr][[1, 2]], 0]}, {rr, 0, sr+st, st}]];
  300. φs = Interpolation[ParallelTable[{rr, If[Quiet@NumericQ[red[rr][[2, 2]]],
  301. red[rr][[2, 2]], 0]}, {rr, 0, sr+st, st}]];
  302. ts = Interpolation[ParallelTable[{rr, If[Quiet@NumericQ[red[rr][[3, 2]]],
  303. red[rr][[3, 2]], 0]}, {rr, 0, sr+st, st}]];
  304.  
  305. "Akkretionsscheibe:"
  306.  
  307. plot[func_, label_] := Plot[func, {rr, si, sr},
  308. GridLines -> {{nq[Min[rp]], nq[Max[rp]], nq[rA], nq[si], nq[isco], nq[rE], nq[sr]}, {}},
  309. Frame -> True, ImagePadding -> {{40, 12}, {12, 12}}, ImageSize -> 340,
  310. PlotLabel -> label, PlotRange->{{0, sr}, All}]
  311.  
  312. Grid[{{
  313. plot[Sqrt[Χs[rr]/Δs[rr]/Σs[rr]], "Gravitational time dilation: y=dt/dт, x=r"],
  314. plot[φs[rr]/ts[rr], "Shapirodelayed angular velocity: y=dφ/dt, x=r"]},{
  315. plot[ts[rr], "Total time dilation: y=dt/dτ, x=r"],
  316. plot[φs[rr], "Coordinate speed: y=dφ/dτ, x=r"]}, {
  317. plot[(a (2 rr-℧^2))/((a^2+rr^2)^2-a^2 (a^2-2 rr+rr^2+℧^2)), "Frame Dragging: y=dφ/dт, x=r"],
  318. plot[vs[rr], "Local velocity: y=v=dl/dτ, x=r"]}}]
  319.  
  320. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  321. (* 7) Frame Dragging und Gammafaktor |||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  322. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  323.  
  324. й0 = (a (2 r0-℧^2) Sin[θ0] Sqrt[((a^2+r0^2)^2-a^2 (a^2-2 r0+r0^2+℧^2) Sin[θ0]^2)/((a^2-
  325. 2 r0+r0^2+℧^2) (r0^2+a^2 Cos[θ0]^2))])/((r0^2+a^2 Cos[θ0]^2) Sqrt[((a^2+r0^2)^2-a^2 (a^2-
  326. 2 r0+r0^2+℧^2) Sin[θ0]^2)/(r0^2+a^2 Cos[θ0]^2)]);
  327. vя = Sqrt[((a^2+r0^2)(℧^2-2r0))/(a^2 Sin[θ0]^2(a^2+(r0-2)r0+℧^2)-(a^2+r0^2)^2)];
  328. vR = Sqrt[(2 r0-℧^2)/(a^2+r0^2)];
  329.  
  330. U = {+vr, +vθ, +vφ};
  331. γ = 1/Sqrt[1-Norm[U]^2];
  332.  
  333. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  334. (* 8) Rotationsmatrix für die auf der Sichtebene eintreffenden Strahlen ||||||||||||||||| *)
  335. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  336.  
  337. Xyz[{x_, y_, z_}, α_] := {x Cos[α]-y Sin[α], x Sin[α]+y Cos[α], z};
  338. xYz[{x_, y_, z_}, β_] := {x Cos[β]+z Sin[β], y, z Cos[β]-x Sin[β]};
  339. xyZ[{x_, y_, z_}, ψ_] := {x, y Cos[ψ]-z Sin[ψ], y Sin[ψ]+z Cos[ψ]};
  340.  
  341. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  342. (* 9) Raytracing Funktionscontainer ||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  343. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  344.  
  345. raytracer[{Ф_, ϑ_}] :=
  346.  
  347. Quiet[Module[{DGL, sol, εj, pθi, pr0, Q, k, V, W, vw,
  348. vr0i, vθ0i, vφ0i, vr0n, vθ0n, vφ0n, vr0a, vθia, vφ0a, vt0a,
  349. t10, r10, Θ10, Φ10, t, r, θ, φ, τ,
  350. т, т0, т1, т2, т3, т4, т5,
  351. plunge, plunge0, plunge1, plunge2, plunge3,
  352. plunge4, plunge5, plunge6, plunge7,
  353. dθ0, dφ0, δφ0, δθ0, δr0, δt0, tt0, rt0, θt0, φt0,
  354. dθ1, dφ1, δφ1, δθ1, δr1, δt1, tt1, rt1, θt1, φt1,
  355. dθ2, dφ2, δφ2, δθ2, δr2, δt2, tt2, rt2, θt2, φt2,
  356. dθ3, dφ3, δφ3, δθ3, δr3, δt3, tt3, rt3, θt3, φt3,
  357. dθ4, dφ4, δφ4, δθ4, δr4, δt4, tt4, rt4, θt4, φt4,
  358. dθ5, dφ5, δφ5, δθ5, δr5, δt5, tt5, rt5, θt5, φt5,
  359. dθ6, dφ6, δφ6, δθ6, δr6, δt6, tt6, rt6, θt6, φt6,
  360. X, Y, Z, ξ, stepsize, laststep, mtl, ft, fτ, varb,
  361. ft0s, ft1s, ft2s, ft3s, ft4s,
  362. ft0v, ft1v, ft2v, ft3v, ft4v, ft5v,
  363. ft0f, ft1f, ft2f, ft3f, ft4f, ft5f,
  364. ft0F, ft1F, ft2F, ft3F, ft4F, ft5F,
  365. ft5h, ft5b, ft5x, ft5y,
  366. dt0y, dr0y, dθ0y, dφ0y,
  367. initcon, shF, ShF},
  368.  
  369. vw=xyZ[Xyz[{0, 1, 0}, ϑ], Ф+π/2];
  370. (* Übersetzung des Einfallswinkels in den lokalen Tetrad *)
  371. vr0a = vw[[3]];
  372. vφ0a = vw[[2]];
  373. vθia = vw[[1]];
  374. (* Betrag *)
  375. vt0a = Sqrt[vr0a^2+vφ0a^2+vθia^2];
  376. (* Normierung *)
  377. vr0n = vr0a/vt0a;
  378. vφ0n = vφ0a/vt0a;
  379. vθ0n = vθia/vt0a;
  380. (* Relativistische Geschwindigkeitsaddition *)
  381. V={vr0n, vθ0n, vφ0n};
  382. W=(U+V+γ/(1+γ)(U\[Cross](U\[Cross]V)))/(1+U.V);
  383. (* Aberration *)
  384. vr0i = W[[1]];
  385. vθ0i = W[[2]];
  386. vφ0i = W[[3]];
  387.  
  388. shF = Abs[If[vLF==0, 1, Sqrt[1-vLF^2]/(1+vLF (-Cos[If[vrF>0, -dΘF, +dΘF]] Sin[ϑ]-
  389. Sin[If[vrF>0, -dΘF, +dΘF]] (Cos[-Ф-π/2+If[vrF>0, -1,
  390. 1] ArcSin[vφF/vLF]] Cos[ϑ] Cos[1/2 π If[vφF<0,
  391. 1, -1] If[vrF!=0,-1,1]]-Cos[ϑ] Sin[-Ф-π/2+
  392. If[vrF>0, -1, +1]ArcSin[vφF/vLF]] Sin[1/2 π])))]];
  393.  
  394. ShF = Abs[If[VLF==0, 1, Sqrt[1-VLF^2]/(1+VLF (-Cos[If[VrF>0, -dΘF, +dΘF]] Sin[ϑ]-
  395. Sin[If[VrF>0, -dΘF, +dΘF]] (Cos[-Ф-π/2+If[VrF>0, -1,
  396. 1] ArcSin[VφF/VLF]] Cos[ϑ] Cos[1/2 π If[VφF<0,
  397. 1, -1] If[VrF!=0,-1,1]]-Cos[ϑ] Sin[-Ф-π/2+
  398. If[VrF>0, -1, +1]ArcSin[VφF/VLF]] Sin[1/2 π])))]];
  399.  
  400. initcon = TimeConstrained[NSolve[
  401. vr0i ==
  402. N[(Sqrt[2] Sqrt[1-μ^2 v0^2] ((q μ^2 ℧ r0 Sqrt[-℧^2+2 r0] v0^2)/((a^2+℧^2+(-2+
  403. r0) r0) Sqrt[a^2+r0^2])+((a^2+a^2 Cos[2 θi]+2 r0^2) dr0y)/(2 (a^2+r0^2))+(Sqrt[-℧^2+
  404. 2 r0] (dt0y-a Sin[θi]^2 dφ0y))/Sqrt[a^2+r0^2]))/Sqrt[(a^2+a^2 Cos[2 θi]+2 r0^2)/(a^2+r0^2)]]
  405. &&
  406. vθ0i ==
  407. N[Sqrt[a^2 Cos[θi]^2+r0^2] Sqrt[1-μ^2 v0^2] dθ0y]
  408. &&
  409. vφ0i ==
  410. N[(Sin[θi]^2 Sqrt[1-μ^2 v0^2] (a q μ^2 ℧ r0 Sqrt[a^2+r0^2] v0^2-1/2 a Sqrt[-℧^2+2 r0] (a^2+
  411. a^2 Cos[2 θi]+2 r0^2) dr0y+Sqrt[a^2+r0^2] (a (℧^2-2 r0) dt0y+((a^2+r0^2)^2-a^2 (a^2+℧^2-
  412. 2 r0+r0^2) Sin[θi]^2) dφ0y)))/(Sqrt[a^2+r0^2] (a^2 Cos[θi]^2+r0^2) Sqrt[(Sin[θi]^2 ((a^2+
  413. r0^2)^2-a^2 (a^2+℧^2-2 r0+r0^2) Sin[θi]^2))/(a^2 Cos[θi]^2+r0^2)])]
  414. &&
  415. -μ ==
  416. N[-(((a^2+2 r0^2+a^2 Cos[2 θi]) (dr0y)^2)/(2 (a^2+r0^2)))-(2 Sqrt[2 r0-
  417. ℧^2] dr0y dt0y)/Sqrt[a^2+r0^2]+(1+(-4 r0+2 ℧^2)/(a^2+2 r0^2+a^2 Cos[2 θi])) (dt0y)^2+
  418. (-r0^2-a^2 Cos[θi]^2) dθ0y^2+(2 a Sqrt[2 r0-℧^2] Sin[θi]^2 dr0y dφ0y)/Sqrt[a^2+
  419. r0^2]+(2 a (2 r0-℧^2) Sin[θi]^2 dt0y dφ0y)/(r0^2+a^2 Cos[θi]^2)+((-(a^2+r0^2)^2 Sin[θi]^2+
  420. a^2 (a^2+(-2+r0) r0+℧^2) Sin[θi]^4) (dφ0y)^2)/(r0^2+a^2 Cos[θi]^2)]
  421. &&
  422. dt0y > 0,
  423. {dθ0y, dr0y, dt0y, dφ0y}, Reals], 3];
  424.  
  425. DGL = If[NumericQ[dt0y /. initcon[[1]]] == False, {}, { (* Bewegungsgleichungen *)
  426.  
  427. t''[τ] == Re[1/(8 (a^2 Cos[θ[τ]]^2+r[τ]^2)^3) (8 q ℧ (-a^4 Cos[θ[τ]]^4+r[τ]^4) r'[τ]+
  428. (8 (a^2 Cos[θ[τ]]^2+℧^2 r[τ]-r[τ]^2) (a^2 Cos[θ[τ]]^2+r[τ]^2)^2 r'[τ]^2)/(Sqrt[-℧^2+
  429. 2 r[τ]] Sqrt[a^2+r[τ]^2])+8 q ℧ Sqrt[-℧^2+2 r[τ]] Sqrt[a^2+r[τ]^2] (-a^2 Cos[θ[τ]]^2+
  430. r[τ]^2) t'[τ]+16 (a^2 Cos[θ[τ]]^2+℧^2 r[τ]-r[τ]^2) (a^2 Cos[θ[τ]]^2+r[τ]^2) r'[τ] t'[τ]+
  431. 8 Sqrt[-℧^2+2 r[τ]] (a^2 Cos[θ[τ]]^2+℧^2 r[τ]-r[τ]^2) Sqrt[a^2+r[τ]^2] t'[τ]^2-
  432. 8 a^2 q ℧ r[τ] (a^2 Cos[θ[τ]]^2+r[τ]^2) Sin[2 θ[τ]] θ'[τ]+(8 a^2 Sqrt[-℧^2+
  433. 2 r[τ]] (a^2 Cos[θ[τ]]^2+r[τ]^2)^2 Sin[2 θ[τ]] r'[τ] θ'[τ])/Sqrt[a^2+r[τ]^2]-8 a^2 (℧^2-
  434. 2 r[τ]) (a^2 Cos[θ[τ]]^2+r[τ]^2) Sin[2 θ[τ]] t'[τ] θ'[τ]+8 r[τ] Sqrt[-℧^2+
  435. 2 r[τ]] Sqrt[a^2+r[τ]^2] (a^2 Cos[θ[τ]]^2+r[τ]^2)^2 θ'[τ]^2-8 a q ℧ Sqrt[-℧^2+
  436. 2 r[τ]] Sqrt[a^2+r[τ]^2] (-a^2 Cos[θ[τ]]^2+r[τ]^2) Sin[θ[τ]]^2 φ'[τ]-
  437. 16 a (a^2 Cos[θ[τ]]^2+(℧^2-r[τ]) r[τ]) (a^2 Cos[θ[τ]]^2+r[τ]^2) Sin[θ[τ]]^2 r'[τ] φ'[τ]-
  438. 16 a Sqrt[-℧^2+2 r[τ]] (a^2 Cos[θ[τ]]^2+℧^2 r[τ]-r[τ]^2) Sqrt[a^2+
  439. r[τ]^2] Sin[θ[τ]]^2 t'[τ] φ'[τ]+16 a^3 Cos[θ[τ]] (℧^2-2 r[τ]) (a^2 Cos[θ[τ]]^2+
  440. r[τ]^2) Sin[θ[τ]]^3 θ'[τ] φ'[τ]+Sqrt[-℧^2+2 r[τ]] Sqrt[a^2+r[τ]^2] (a^4+
  441. a^4 Cos[4 θ[τ]] (-1+r[τ])+3 a^4 r[τ]+4 a^2 ℧^2 r[τ]-4 a^2 r[τ]^2+8 a^2 r[τ]^3+
  442. 8 r[τ]^5+4 a^2 Cos[2 θ[τ]] r[τ] (a^2-℧^2+r[τ]+2 r[τ]^2)) Sin[θ[τ]]^2 φ'[τ]^2)],
  443.  
  444. t'[0] == dt0y/.initcon[[1]],
  445. t[0] == 0,
  446.  
  447. r''[τ] == Re[1/(8 (a^2 Cos[θ[τ]]^2+r[τ]^2)^3) (-8 q ℧ Sqrt[-℧^2+2 r[τ]] Sqrt[a^2+
  448. r[τ]^2] (-a^2 Cos[θ[τ]]^2+r[τ]^2) r'[τ]+(8 a^2 q ℧ Sqrt[-℧^2+2 r[τ]] (-a^2 Cos[θ[τ]]^2+
  449. r[τ]^2) Sin[θ[τ]]^2 r'[τ])/Sqrt[a^2+r[τ]^2]+(4 (a^2 Cos[θ[τ]]^2+
  450. r[τ]^2)^2 (a^2 Cos[2 θ[τ]] (-1+r[τ])-a^2 (1+r[τ])+2 r[τ] (-℧^2+r[τ])) r'[τ]^2)/(a^2+
  451. r[τ]^2)-4 q ℧ (2 a^2 Cos[θ[τ]]^2-2 r[τ]^2) (a^2+r[τ]^2) (1+(℧^2-
  452. 2 r[τ])/(a^2 Cos[θ[τ]]^2+r[τ]^2)) t'[τ]+(8 a^2 q ℧ (℧^2-2 r[τ]) (a^2 Cos[θ[τ]]^2-
  453. r[τ]^2) Sin[θ[τ]]^2 t'[τ])/(a^2 Cos[θ[τ]]^2+r[τ]^2)-(16 Sqrt[-℧^2+
  454. 2 r[τ]] (a^2 Cos[θ[τ]]^2+℧^2 r[τ]-r[τ]^2) (a^2 Cos[θ[τ]]^2+
  455. r[τ]^2) r'[τ] t'[τ])/Sqrt[a^2+r[τ]^2]+8 (a^2 Cos[θ[τ]]^2+℧^2 r[τ]-r[τ]^2) (a^2+
  456. ℧^2-2 r[τ]+r[τ]^2) t'[τ]^2+8 a^2 (a^2 Cos[θ[τ]]^2+r[τ]^2)^2 Sin[2 θ[τ]] r'[τ] θ'[τ]+
  457. 8 r[τ] (a^2 Cos[θ[τ]]^2+r[τ]^2)^2 (a^2+℧^2-2 r[τ]+r[τ]^2) θ'[τ]^2+(8 a q ℧ (℧^2-
  458. 2 r[τ]) (a^2 Cos[θ[τ]]^2-r[τ]^2) (a^2+r[τ]^2) Sin[θ[τ]]^2 φ'[τ])/(a^2 Cos[θ[τ]]^2+
  459. r[τ]^2)-(4 a q ℧ (2 a^2 Cos[θ[τ]]^2-2 r[τ]^2) (-(a^2+r[τ]^2)^2 Sin[θ[τ]]^2+a^2 (a^2+
  460. ℧^2+(-2+r[τ]) r[τ]) Sin[θ[τ]]^4) φ'[τ])/(a^2 Cos[θ[τ]]^2+r[τ]^2)-(8 a Sqrt[-℧^2+
  461. 2 r[τ]] (a^2 Cos[θ[τ]]^2+r[τ]^2) (a^2 (-1+r[τ])+a^2 Cos[2 θ[τ]] (-1+r[τ])+
  462. 2 r[τ] (-℧^2+r[τ]+r[τ]^2)) Sin[θ[τ]]^2 r'[τ] φ'[τ])/Sqrt[a^2+r[τ]^2]-
  463. 16 a (a^2 Cos[θ[τ]]^2+(℧^2-r[τ]) r[τ]) (a^2+℧^2-2 r[τ]+
  464. r[τ]^2) Sin[θ[τ]]^2 t'[τ] φ'[τ]+(a^2+℧^2-2 r[τ]+r[τ]^2) (a^4+a^4 Cos[4 θ[τ]] (-1+
  465. r[τ])+3 a^4 r[τ]+4 a^2 ℧^2 r[τ]-4 a^2 r[τ]^2+8 a^2 r[τ]^3+8 r[τ]^5+
  466. 4 a^2 Cos[2 θ[τ]] r[τ] (a^2-℧^2+r[τ]+2 r[τ]^2)) Sin[θ[τ]]^2 φ'[τ]^2)],
  467.  
  468. r'[0] == dr0y/.initcon[[1]],
  469. r[0] == r0,
  470.  
  471. θ''[τ] == Re[-1/(2 (a^2 Cos[θ[τ]]^2+r[τ]^2)^4) ((2 a^2 Cos[θ[τ]] (a^2 Cos[θ[τ]]^2+
  472. r[τ]^2)^3 Sin[θ[τ]] r'[τ]^2)/(a^2+r[τ]^2)-2 a^2 q ℧ (℧^2-2 r[τ]) r[τ] Sin[2 θ[τ]] t'[τ]+
  473. a^2 q ℧ r[τ] (a^2+2 ℧^2+a^2 Cos[2 θ[τ]]-4 r[τ]+2 r[τ]^2) Sin[2 θ[τ]] t'[τ]+
  474. 2 a^2 Cos[θ[τ]] (℧^2-2 r[τ]) (a^2 Cos[θ[τ]]^2+r[τ]^2) Sin[θ[τ]] t'[τ]^2+
  475. 4 r[τ] (a^2 Cos[θ[τ]]^2+r[τ]^2)^3 r'[τ] θ'[τ]-2 a^2 Cos[θ[τ]] (a^2 Cos[θ[τ]]^2+
  476. r[τ]^2)^3 Sin[θ[τ]] θ'[τ]^2-4 a^3 q ℧ Cos[θ[τ]] (℧^2-2 r[τ]) r[τ] Sin[θ[τ]]^3 φ'[τ]+
  477. 4 a q ℧ Cot[θ[τ]] r[τ] (-(a^2+r[τ]^2)^2 Sin[θ[τ]]^2+a^2 (a^2+℧^2+(-2+
  478. r[τ]) r[τ]) Sin[θ[τ]]^4) φ'[τ]+(2 a Sqrt[-℧^2+2 r[τ]] (a^2 Cos[θ[τ]]^2+
  479. r[τ]^2)^3 Sin[2 θ[τ]] r'[τ] φ'[τ])/Sqrt[a^2+r[τ]^2]-2 a (℧^2-2 r[τ]) (a^2+
  480. r[τ]^2) (a^2 Cos[θ[τ]]^2+r[τ]^2) Sin[2 θ[τ]] t'[τ] φ'[τ]+(a^2 Cos[θ[τ]]^2+
  481. r[τ]^2) (2 a^2 Cos[θ[τ]] Sin[θ[τ]]^3 (-(a^2+r[τ]^2)^2+a^2 (a^2+℧^2+(-2+
  482. r[τ]) r[τ]) Sin[θ[τ]]^2)+(a^2 Cos[θ[τ]]^2+r[τ]^2) (4 a^2 Cos[θ[τ]] (a^2+℧^2+
  483. (-2+r[τ]) r[τ]) Sin[θ[τ]]^3-(a^2+r[τ]^2)^2 Sin[2 θ[τ]])) φ'[τ]^2)],
  484.  
  485. θ'[0] == dθ0y/.initcon[[1]],
  486. θ[0] == θi,
  487.  
  488. φ''[τ] == Re[1/(4 (a^2 Cos[θ[τ]]^2+r[τ]^2)^3) ((4 a q ℧ (-a^4 Cos[θ[τ]]^4+r[τ]^4) r'[τ])/(a^2+
  489. r[τ]^2)+(4 a (a^2 Cos[θ[τ]]^2+℧^2 r[τ]-r[τ]^2) (a^2 Cos[θ[τ]]^2+
  490. r[τ]^2)^2 r'[τ]^2)/(Sqrt[-℧^2+2 r[τ]] (a^2+r[τ]^2)^(3/2))+(4 a q ℧ Sqrt[-℧^2+
  491. 2 r[τ]] (-a^2 Cos[θ[τ]]^2+r[τ]^2) t'[τ])/Sqrt[a^2+r[τ]^2]+(8 a (a^2 Cos[θ[τ]]^2+(℧^2-
  492. r[τ]) r[τ]) (a^2 Cos[θ[τ]]^2+r[τ]^2) r'[τ] t'[τ])/(a^2+r[τ]^2)+(4 a Sqrt[-℧^2+
  493. 2 r[τ]] (a^2 Cos[θ[τ]]^2+℧^2 r[τ]-r[τ]^2) t'[τ]^2)/Sqrt[a^2+r[τ]^2]-
  494. 8 a q ℧ Cot[θ[τ]] r[τ] (a^2 Cos[θ[τ]]^2+r[τ]^2) θ'[τ]+(8 a Cot[θ[τ]] Sqrt[-℧^2+
  495. 2 r[τ]] (a^2 Cos[θ[τ]]^2+r[τ]^2)^2 r'[τ] θ'[τ])/Sqrt[a^2+r[τ]^2]-8 a Cot[θ[τ]] (℧^2-
  496. 2 r[τ]) (a^2 Cos[θ[τ]]^2+r[τ]^2) t'[τ] θ'[τ]+(4 a r[τ] Sqrt[-℧^2+2 r[τ]] (a^2 Cos[θ[τ]]^2+
  497. r[τ]^2)^2 θ'[τ]^2)/Sqrt[a^2+r[τ]^2]-(4 a^2 q ℧ Sqrt[-℧^2+2 r[τ]] (-a^2 Cos[θ[τ]]^2+
  498. r[τ]^2) Sin[θ[τ]]^2 φ'[τ])/Sqrt[a^2+r[τ]^2]+(8 (a^2 Cos[θ[τ]]^2+
  499. r[τ]^2) (a^4 Cos[θ[τ]]^2 (-1+r[τ])-r[τ] (a^2 (a^2+℧^2-r[τ])+2 a^2 Cot[θ[τ]]^2 (a^2+
  500. r[τ]^2)+Csc[θ[τ]]^2 (-a^4+r[τ]^4))) Sin[θ[τ]]^2 r'[τ] φ'[τ])/(a^2+r[τ]^2)-
  501. (8 a^2 Sqrt[-℧^2+2 r[τ]] (a^2 Cos[θ[τ]]^2+℧^2 r[τ]-
  502. r[τ]^2) Sin[θ[τ]]^2 t'[τ] φ'[τ])/Sqrt[a^2+r[τ]^2]-Cot[θ[τ]] (a^2 Cos[θ[τ]]^2+
  503. r[τ]^2) (a^2 (3 a^2-4 ℧^2+4 (a^2+℧^2) Cos[2 θ[τ]]+a^2 Cos[4 θ[τ]])+
  504. 16 a^2 Cos[θ[τ]]^2 r[τ]^2+8 r[τ]^4+16 a^2 r[τ] Sin[θ[τ]]^2) θ'[τ] φ'[τ]+
  505. (4 a Sqrt[-℧^2+2 r[τ]] Sin[θ[τ]]^2 (r[τ] (-a^4+r[τ]^4+a^2 (a^2+℧^2-r[τ]) Sin[θ[τ]]^2)+
  506. Cos[θ[τ]]^2 (2 a^2 r[τ] (a^2+r[τ]^2)-a^4 (-1+r[τ]) Sin[θ[τ]]^2)) φ'[τ]^2)/Sqrt[a^2+r[τ]^2])],
  507.  
  508. φ'[0] == dφ0y/.initcon[[1]],
  509. φ[0] == φ0,
  510.  
  511. WhenEvent[Abs[r[τ]] == N[R0]||Abs[r[τ]] > R0 &&
  512. NumericQ[plunge6] == False,
  513. (plunge6=τ) &&
  514. (tt6=t[τ]) && (rt6=r[τ]) && (θt6=θ[τ]) && (φt6=φ[τ]);
  515. "StopIntegration"],
  516.  
  517. WhenEvent[Abs[r[τ]] == N[R1] &&
  518. NumericQ[plunge5] == False,
  519. (plunge5=τ) && (tt5=t[τ]) && (rt5=r[τ]) && (θt5=θ[τ]) && (φt5=φ[τ]);
  520. If[r0>R1, "StopIntegration"]],
  521.  
  522. WhenEvent[Mod[180/π Re[θ[τ]], 180] == 90.0 && r[τ]>N[si] &&
  523. r[τ]<N[sr] && τ < -0.05 &&
  524. NumericQ[plunge0] == False,
  525. (plunge0=τ) &&
  526. (tt0=t[τ]) && (rt0=r[τ]) && (θt0=θ[τ]) && (φt0=φ[τ]) &&
  527. (δt0=t'[τ]) && (δr0=r'[τ]) && (δθ0=θ'[τ]) && (δφ0=φ'[τ])],
  528.  
  529. WhenEvent[Mod[180/π Re[θ[τ]], 180] == 90.0 && r[τ]>N[si] &&
  530. r[τ]<N[sr] && Re[θ'[τ]]>0 && τ < -0.05 &&
  531. NumericQ[plunge1] == False,
  532. (plunge1=τ) &&
  533. (tt1=t[τ]) && (rt1=r[τ]) && (θt1=θ[τ]) && (φt1=φ[τ]) &&
  534. (δt1=t'[τ]) && (δr1=r'[τ]) && (δθ1=θ'[τ]) && (δφ1=φ'[τ])],
  535.  
  536. WhenEvent[Mod[180/π Re[θ[τ]], 180] == 90.0 && r[τ]>N[si] &&
  537. r[τ]<N[sr] && Re[θ'[τ]]<0 && τ < -0.05 &&
  538. NumericQ[plunge2] == False,
  539. (plunge2=τ) &&
  540. (tt2=t[τ]) && (rt2=r[τ]) && (θt2=θ[τ]) && (φt2=φ[τ]) &&
  541. (δt2=t'[τ]) && (δr2=r'[τ]) && (δθ2=θ'[τ]) && (δφ2=φ'[τ])],
  542.  
  543. WhenEvent[Mod[180/π Re[θ[τ]], 180] == 90.0 && r[τ]>N[si] &&
  544. r[τ]<N[sr] && Re[θ'[τ]]>0 &&
  545. τ < plunge1-0.05 &&
  546. NumericQ[plunge3]==False && NumericQ[plunge1] == True,
  547. (plunge3=τ) &&
  548. (tt3=t[τ]) && (rt3=r[τ]) && (θt3=θ[τ]) && (φt3=φ[τ]) &&
  549. (δt3=t'[τ]) && (δr3=r'[τ]) && (δθ3=θ'[τ]) && (δφ3=φ'[τ])],
  550.  
  551. WhenEvent[Mod[180/π Re[θ[τ]], 180] == 90.0 && r[τ]>N[si] &&
  552. r[τ]<N[sr] && Re[θ'[τ]]<0 &&
  553. τ < plunge2-0.05 &&
  554. NumericQ[plunge4] == False && NumericQ[plunge2] == True,
  555. (plunge4=τ) &&
  556. (tt4=t[τ]) && (rt4=r[τ]) && (θt4=θ[τ]) && (φt4=φ[τ]) &&
  557. (δt4=t'[τ]) && (δr4=r'[τ]) && (δθ4=θ'[τ]) && (δφ4=φ'[τ])]
  558.  
  559. }];
  560. (* Integrator *)
  561. sol = TimeConstrained[If[NumericQ[dt0y /. initcon[[1]]] == False, {},
  562. NDSolve[DGL, {t, r, θ, φ}, {τ, 0, tmax},
  563. WorkingPrecision-> wp,
  564. Method-> mta,
  565. MaxSteps-> Infinity,
  566. InterpolationOrder-> All,
  567. StepMonitor :> (laststep=plunge7; plunge7=τ;
  568. stepsize=plunge7-laststep;), Method->{"EventLocator",
  569. "Event" :> (If[stepsize<1*^-4, 0, 1])}
  570. ]], 10];
  571.  
  572. ft5h=If[NumericQ[plunge5], {φt5-π, θt5+π/2}, {0, -π/2}];
  573. ft5b=If[NumericQ[plunge6], {φt6-π, θt6+π/2}, {0, -π/2}];
  574. ft5x=If[NumericQ[plunge6], {0, 1}, {0, 0}];
  575. ft5y=If[NumericQ[plunge5], {0, 1}, {0, 0}];
  576.  
  577. ft0s=If[NumericQ[plunge0], {φt0, rt0}, {π, sr}];
  578. ft1s=If[NumericQ[plunge1], {φt1, rt1}, {π, sr}];
  579. ft2s=If[NumericQ[plunge2], {φt2, rt2}, {π, sr}];
  580. ft3s=If[NumericQ[plunge3], {φt3, rt3}, {π, sr}];
  581. ft4s=If[NumericQ[plunge4], {φt4, rt4}, {π, sr}];
  582.  
  583. ft0v=If[NumericQ[plunge0], {-dφv[rt0, tt0+t0+rT], 0}, {0, 0}];
  584. ft1v=If[NumericQ[plunge1], {-dφv[rt1, tt1+t0+rT], 0}, {0, 0}];
  585. ft2v=If[NumericQ[plunge2], {-dφv[rt2, tt2+t0+rT], 0}, {0, 0}];
  586. ft3v=If[NumericQ[plunge3], {-dφv[rt3, tt3+t0+rT], 0}, {0, 0}];
  587. ft4v=If[NumericQ[plunge4], {-dφv[rt4, tt4+t0+rT], 0}, {0, 0}];
  588. ft5v=If[NumericQ[plunge5], {-(tt5+t0+rT) ωR1, 0}, {0, 0}];
  589.  
  590. ft0f=If[NumericQ[plunge0], {0, Min[fmax, shF shf[rt0, δt0, δr0, δθ0, δφ0]]}, {0, 0}];
  591. ft1f=If[NumericQ[plunge1], {0, Min[fmax, shF shf[rt1, δt1, δr1, δθ1, δφ1]]}, {0, 0}];
  592. ft2f=If[NumericQ[plunge2], {0, Min[fmax, shF shf[rt2, δt2, δr2, δθ2, δφ2]]}, {0, 0}];
  593. ft3f=If[NumericQ[plunge3], {0, Min[fmax, shF shf[rt3, δt3, δr3, δθ3, δφ3]]}, {0, 0}];
  594. ft4f=If[NumericQ[plunge4], {0, Min[fmax, shF shf[rt4, δt4, δr4, δθ4, δφ4]]}, {0, 0}];
  595. ft5f={0, Min[fmax, ς shF]};
  596.  
  597. ft0F=If[NumericQ[plunge0], {0, Min[fmax, ShF shf[rt0, δt0, δr0, δθ0, δφ0]]}, {0, 0}];
  598. ft1F=If[NumericQ[plunge1], {0, Min[fmax, ShF shf[rt1, δt1, δr1, δθ1, δφ1]]}, {0, 0}];
  599. ft2F=If[NumericQ[plunge2], {0, Min[fmax, ShF shf[rt2, δt2, δr2, δθ2, δφ2]]}, {0, 0}];
  600. ft3F=If[NumericQ[plunge3], {0, Min[fmax, ShF shf[rt3, δt3, δr3, δθ3, δφ3]]}, {0, 0}];
  601. ft4F=If[NumericQ[plunge4], {0, Min[fmax, ShF shf[rt4, δt4, δr4, δθ4, δφ4]]}, {0, 0}];
  602. ft5F={0, Min[fmax, ς ShF]};
  603. {
  604. ft0s, ft1s, ft2s, ft3s, ft4s,
  605. ft0s+ft0v, ft1s+ft1v, ft2s+ft2v, ft3s+ft3v, ft4s+ft4v,
  606. ft0f, ft1f, ft2f, ft3f, ft4f,
  607. ft5h+ft5v, ft5b, ft5f, ft5x, ft5y,
  608. ft0F, ft1F, ft2F, ft3F, ft4F, ft5F
  609. }]];
  610.  
  611. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  612. (* 10) Memoryfunktion ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  613. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  614.  
  615. mem : raytrace[{Ф_, ϑ_}] := mem = Quiet[Re[raytracer[{Ф, ϑ}]]];
  616.  
  617. ray01[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[01]];
  618. ray02[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[02]];
  619. ray03[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[03]];
  620. ray04[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[04]];
  621. ray05[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[05]];
  622.  
  623. ray06[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[06]];
  624. ray07[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[07]];
  625. ray08[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[08]];
  626. ray09[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[09]];
  627. ray10[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[10]];
  628.  
  629. ray11[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[11]];
  630. ray12[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[12]];
  631. ray13[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[13]];
  632. ray14[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[14]];
  633. ray15[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[15]];
  634.  
  635. ray16[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[16]];
  636. ray17[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[17]];
  637. ray18[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[18]];
  638. ray19[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[19]];
  639. ray20[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[20]];
  640.  
  641. ray21[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[21]];
  642. ray22[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[22]];
  643. ray23[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[23]];
  644. ray24[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[24]];
  645. ray25[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[25]];
  646. ray26[{Ф_, ϑ_}] := raytrace[{Ф, ϑ}][[26]];
  647.  
  648. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  649. (* 11) Proportionen ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  650. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  651.  
  652. width1 = ImageDimensions[pic1][[1]]; height1 = ImageDimensions[pic1][[2]];
  653. width2 = ImageDimensions[pic2][[1]]; height2 = ImageDimensions[pic2][[2]];
  654. width3 = ImageDimensions[pic3][[1]]; height3 = ImageDimensions[pic3][[2]];
  655. width4 = ImageDimensions[pic4][[1]]; height4 = ImageDimensions[pic4][[2]];
  656. width5 = ImageDimensions[pic5][[1]]; height5 = ImageDimensions[pic5][[2]];
  657. width6 = ImageDimensions[pic7][[1]]; height6 = ImageDimensions[pic7][[2]];
  658. hzoom = If[breite>2 hoehe, 1/zoom, 1/zoom/2/hoehe*breite];
  659. vzoom = If[breite>2 hoehe, 1/zoom*2 hoehe/breite, 1/zoom];
  660.  
  661. "Geschätzte Rechenzeit" -> 1.2 (AbsoluteTiming[Do[raytracer[{
  662. RandomReal[{-π, π}]/zoom, RandomReal[{-π/2, π/2}]/zoom
  663. }], {ü, 1, 50}]][[1]])/50*hoehe*breite/kernels/60 "Minuten"
  664.  
  665. FOV->{360.0 hzoom "degree", 180.0 vzoom "degree"}
  666.  
  667. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  668. (* 12) Output ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  669. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  670.  
  671. img = ParallelTable[{
  672.  
  673. (* 1 Hintergrundpanorama *)
  674. Quiet@ImageTransformation[pct1, ray17, {breite, Ceiling[hoehe/kernels/grain]},
  675. DataRange->{
  676. {-π, π-2π/width1},
  677. {-π/2, 3π/2}
  678. },
  679. PlotRange->{
  680. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  681. {-π/2+x+vvs/vzoom, -π/2+x+vvs/vzoom+π/kernels/grain} vzoom
  682. },
  683. Resampling->rsp, Padding->"Periodic"],
  684.  
  685. (* 2 Sphäre *)
  686. Quiet@ImageTransformation[pct2, ray16, {breite, Ceiling[hoehe/kernels/grain]},
  687. DataRange->{
  688. {0, 2π-2π/width2},
  689. {-π/2, 3π/2}
  690. },
  691. PlotRange->{
  692. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  693. {-π/2+x+vvs/vzoom, -π/2+x+π/kernels/grain+vvs/vzoom} vzoom
  694. },
  695. Resampling->rsp, Padding->"Periodic"],
  696.  
  697. (* 3 Scheibe Textur komplett *)
  698. Quiet@ImageTransformation[pic3, ray01, {breite, Ceiling[hoehe/kernels/grain]},
  699. DataRange->{
  700. {0, 2π-2π/width3},
  701. {si, sr+(sr-si)/height3}
  702. },
  703. PlotRange->{
  704. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  705. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  706. },
  707. Resampling->rsp, Padding->"Periodic"],
  708.  
  709. (* 4 Scheibe Textur Front *)
  710. Quiet@ImageTransformation[pic3, ray02, {breite, Ceiling[hoehe/kernels/grain]},
  711. DataRange->{
  712. {0, 2π-2π/width3},
  713. {si, sr+(sr-si)/height3}
  714. },
  715. PlotRange->{
  716. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  717. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  718. },
  719. Resampling->rsp, Padding->"Periodic"],
  720.  
  721. (* 5 Scheibe Textur Echo 1 *)
  722. Quiet@ImageTransformation[pic3, ray03, {breite, Ceiling[hoehe/kernels/grain]},
  723. DataRange->{
  724. {0, 2π-2π/width3},
  725. {si, sr+(sr-si)/height3}
  726. },
  727. PlotRange->{
  728. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  729. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  730. },
  731. Resampling->rsp, Padding->"Periodic"],
  732.  
  733. (* 6 Scheibe Textur Echo 2 *)
  734. Quiet@ImageTransformation[pic3, ray04, {breite, Ceiling[hoehe/kernels/grain]},
  735. DataRange->{
  736. {0, 2π-2π/width3},
  737. {si, sr+(sr-si)/height3}
  738. },
  739. PlotRange->{
  740. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  741. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  742. },
  743. Resampling->rsp, Padding->"Periodic"],
  744.  
  745. (* 7 Scheibe Textur Echo 3 *)
  746. Quiet@ImageTransformation[pic3, ray05, {breite, Ceiling[hoehe/kernels/grain]},
  747. DataRange->{
  748. {0, 2π-2π/width3},
  749. {si, sr+(sr-si)/height3}
  750. },
  751. PlotRange->{
  752. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  753. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  754. },
  755. Resampling->rsp, Padding->"Periodic"],
  756.  
  757. (* 8 Scheibe Geometrie still komplett *)
  758. Quiet@ImageTransformation[pic4, ray01, {breite, Ceiling[hoehe/kernels/grain]},
  759. DataRange->{
  760. {0, 2π-2π/width4},
  761. {si, sr}
  762. },
  763. PlotRange->{
  764. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  765. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  766. },
  767. Resampling->rsp, Padding->"Periodic"],
  768.  
  769. (* 9 Scheibe Geometrie still Front *)
  770. Quiet@ImageTransformation[pic4, ray02, {breite, Ceiling[hoehe/kernels/grain]},
  771. DataRange->{
  772. {0, 2π-2π/width4},
  773. {si, sr}
  774. },
  775. PlotRange->{
  776. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  777. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  778. },
  779. Resampling->rsp, Padding->"Periodic"],
  780.  
  781. (* 10 Scheibe Geometrie still Echo 1 *)
  782. Quiet@ImageTransformation[pic4, ray03, {breite, Ceiling[hoehe/kernels/grain]},
  783. DataRange->{
  784. {0, 2π-2π/width4},
  785. {si, sr}
  786. },
  787. PlotRange->{
  788. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  789. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  790. },
  791. Resampling->rsp, Padding->"Periodic"],
  792.  
  793. (* 11 Scheibe Geometrie still Echo 2 *)
  794. Quiet@ImageTransformation[pic4, ray04, {breite, Ceiling[hoehe/kernels/grain]},
  795. DataRange->{
  796. {0, 2π-2π/width4},
  797. {si, sr}
  798. },
  799. PlotRange->{
  800. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  801. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  802. },
  803. Resampling->rsp, Padding->"Periodic"],
  804.  
  805. (* 12 Scheibe Geometrie still Echo 3 *)
  806. Quiet@ImageTransformation[pic4, ray05, {breite, Ceiling[hoehe/kernels/grain]},
  807. DataRange->{
  808. {0, 2π-2π/width4},
  809. {si, sr}
  810. },
  811. PlotRange->{
  812. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  813. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  814. },
  815. Resampling->rsp, Padding->"Periodic"],
  816.  
  817. (* 13 Scheibe Geometrie rotierend komplett *)
  818. Quiet@ImageTransformation[pic4, ray06, {breite, Ceiling[hoehe/kernels/grain]},
  819. DataRange->{
  820. {0, 2π-2π/width4},
  821. {si, sr}
  822. },
  823. PlotRange->{
  824. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  825. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  826. },
  827. Resampling->rsp, Padding->"Periodic"],
  828.  
  829. (* 14 Scheibe Geometrie rotierend Front *)
  830. Quiet@ImageTransformation[pic4, ray07, {breite, Ceiling[hoehe/kernels/grain]},
  831. DataRange->{
  832. {0, 2π-2π/width4},
  833. {si, sr}
  834. },
  835. PlotRange->{
  836. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  837. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  838. },
  839. Resampling->rsp, Padding->"Periodic"],
  840.  
  841. (* 15 Scheibe Geometrie rotierend Echo 1 *)
  842. Quiet@ImageTransformation[pic4, ray08, {breite, Ceiling[hoehe/kernels/grain]},
  843. DataRange->{
  844. {0, 2π-2π/width4},
  845. {si, sr}
  846. },
  847. PlotRange->{
  848. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  849. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  850. },
  851. Resampling->rsp, Padding->"Periodic"],
  852.  
  853. (* 16 Scheibe Geometrie rotierend Echo 2 *)
  854. Quiet@ImageTransformation[pic4, ray09, {breite, Ceiling[hoehe/kernels/grain]},
  855. DataRange->{
  856. {0, 2π-2π/width4},
  857. {si, sr}
  858. },
  859. PlotRange->{
  860. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  861. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  862. },
  863. Resampling->rsp, Padding->"Periodic"],
  864.  
  865. (* 17 Scheibe Geometrie rotierend Echo 3 *)
  866. Quiet@ImageTransformation[pic4, ray10, {breite, Ceiling[hoehe/kernels/grain]},
  867. DataRange->{
  868. {0, 2π-2π/width4},
  869. {si, sr}
  870. },
  871. PlotRange->{
  872. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  873. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  874. },
  875. Resampling->rsp, Padding->"Periodic"],
  876.  
  877. (* 18 Frequenzverschiebung komplett SW *)
  878. Quiet@ImageTransformation[pic5, ray11, {breite, Ceiling[hoehe/kernels/grain]},
  879. DataRange->{
  880. {-1, 1},
  881. {fmin, fmax}
  882. },
  883. PlotRange->{
  884. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  885. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  886. },
  887. Resampling->rsp, Padding->"Fixed"],
  888.  
  889. (* 19 Frequenzverschiebung Front SW *)
  890. Quiet@ImageTransformation[pic5, ray12, {breite, Ceiling[hoehe/kernels/grain]},
  891. DataRange->{
  892. {0, 2π},
  893. {fmin, fmax}
  894. },
  895. PlotRange->{
  896. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  897. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  898. },
  899. Resampling->rsp, Padding->"Fixed"],
  900.  
  901. (* 20 Frequenzverschiebung Echo 1 SW *)
  902. Quiet@ImageTransformation[pic5, ray13, {breite, Ceiling[hoehe/kernels/grain]},
  903. DataRange->{
  904. {0, 2π},
  905. {fmin, fmax}
  906. },
  907. PlotRange->{
  908. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  909. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  910. },
  911. Resampling->rsp, Padding->"Fixed"],
  912.  
  913. (* 21 Frequenzverschiebung Echo 2 SW *)
  914. Quiet@ImageTransformation[pic5, ray14, {breite, Ceiling[hoehe/kernels/grain]},
  915. DataRange->{
  916. {0, 2π},
  917. {fmin, fmax}
  918. },
  919. PlotRange->{
  920. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  921. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  922. },
  923. Resampling->rsp, Padding->"Fixed"],
  924.  
  925. (* 22 Frequenzverschiebung Echo 3 SW *)
  926. Quiet@ImageTransformation[pic5, ray15, {breite, Ceiling[hoehe/kernels/grain]},
  927. DataRange->{
  928. {0, 2π},
  929. {fmin, fmax}
  930. },
  931. PlotRange->{
  932. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  933. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  934. },
  935. Resampling->rsp, Padding->"Fixed"],
  936.  
  937. (* 23 Frequenzverschiebung komplett Farbe *)
  938. Quiet@ImageTransformation[pic6, ray11, {breite, Ceiling[hoehe/kernels/grain]},
  939. DataRange->{
  940. {0, 2π},
  941. {fmin, fmax}
  942. },
  943. PlotRange->{
  944. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  945. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  946. },
  947. Resampling->rsp, Padding->"Fixed"],
  948.  
  949. (* 24 Frequenzverschiebung Front Farbe *)
  950. Quiet@ImageTransformation[pic6, ray12, {breite, Ceiling[hoehe/kernels/grain]},
  951. DataRange->{
  952. {0, 2π},
  953. {fmin, fmax}
  954. },
  955. PlotRange->{
  956. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  957. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  958. },
  959. Resampling->rsp, Padding->"Fixed"],
  960.  
  961. (* 25 Frequenzverschiebung Echo 1 Farbe *)
  962. Quiet@ImageTransformation[pic6, ray13, {breite, Ceiling[hoehe/kernels/grain]},
  963. DataRange->{
  964. {0, 2π},
  965. {fmin, fmax}
  966. },
  967. PlotRange->{
  968. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  969. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  970. },
  971. Resampling->rsp, Padding->"Fixed"],
  972.  
  973. (* 26 Frequenzverschiebung Echo 2 Farbe *)
  974. Quiet@ImageTransformation[pic6, ray14, {breite, Ceiling[hoehe/kernels/grain]},
  975. DataRange->{
  976. {0, 2π},
  977. {fmin, fmax}
  978. },
  979. PlotRange->{
  980. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  981. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  982. },
  983. Resampling->rsp, Padding->"Fixed"],
  984.  
  985. (* 27 Frequenzverschiebung Echo 3 Farbe *)
  986. Quiet@ImageTransformation[pic6, ray15, {breite, Ceiling[hoehe/kernels/grain]},
  987. DataRange->{
  988. {0, 2π},
  989. {fmin, fmax}
  990. },
  991. PlotRange->{
  992. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  993. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  994. },
  995. Resampling->rsp, Padding->"Fixed"],
  996.  
  997. (* 28 Hintergrundpanorama *)
  998. ImageTransformation[pct3, ray17, {breite, Ceiling[hoehe/kernels/grain]},
  999. DataRange->{
  1000. {-π, π-2π/width6},
  1001. {-π/2, 3π/2}
  1002. },
  1003. PlotRange->{
  1004. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1005. {-π/2+x+vvs/vzoom, -π/2+x+vvs/vzoom+π/kernels/grain} vzoom
  1006. },
  1007. Resampling->rsp, Padding->"Periodic"],
  1008.  
  1009. (* 29 Sphäre *)
  1010. ImageTransformation[pct3, ray16, {breite, Ceiling[hoehe/kernels/grain]},
  1011. DataRange->{
  1012. {-π, π-2π/width6},
  1013. {-π/2, 3π/2}
  1014. },
  1015. PlotRange->{
  1016. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1017. {-π/2+x+vvs/vzoom, -π/2+x+π/kernels/grain+vvs/vzoom} vzoom
  1018. },
  1019. Resampling->rsp, Padding->"Periodic"],
  1020.  
  1021. (* 30 Scheibe Textur komplett *)
  1022. ImageTransformation[pic7, ray01, {breite, Ceiling[hoehe/kernels/grain]},
  1023. DataRange->{
  1024. {0, 2π-2π/width6},
  1025. {si, sr+(sr-si)/height6}
  1026. },
  1027. PlotRange->{
  1028. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1029. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1030. },
  1031. Resampling->rsp, Padding->"Periodic"],
  1032.  
  1033. (* 31 Frequenzverschiebung Hintergrund Farbe *)
  1034. Quiet@ImageTransformation[pic6, ray18, {breite, Ceiling[hoehe/kernels/grain]},
  1035. DataRange->{
  1036. {0, 2π},
  1037. {fmin, fmax}
  1038. },
  1039. PlotRange->{
  1040. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1041. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1042. },
  1043. Resampling->rsp, Padding->"Fixed"],
  1044.  
  1045. (* 32 Frequenzverschiebung Hintergrund SW *)
  1046. Quiet@ImageTransformation[pic5, ray18, {breite, Ceiling[hoehe/kernels/grain]},
  1047. DataRange->{
  1048. {0, 2π},
  1049. {fmin, fmax}
  1050. },
  1051. PlotRange->{
  1052. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1053. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1054. },
  1055. Resampling->rsp, Padding->"Fixed"],
  1056.  
  1057. (* 33 Kontur BH *)
  1058. Quiet@ImageTransformation[pic5, ray19, {breite, Ceiling[hoehe/kernels/grain]},
  1059. DataRange->{
  1060. {0, 2π},
  1061. {0, 1}
  1062. },
  1063. PlotRange->{
  1064. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1065. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1066. },
  1067. Resampling->rsp, Padding->"Fixed"],
  1068.  
  1069. (* 34 Kontur IH *)
  1070. Quiet@ImageTransformation[pic5, ray20, {breite, Ceiling[hoehe/kernels/grain]},
  1071. DataRange->{
  1072. {0, 2π},
  1073. {0, 1}
  1074. },
  1075. PlotRange->{
  1076. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1077. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1078. },
  1079. Resampling->rsp, Padding->"Fixed"],
  1080.  
  1081. (* 35 Frequenzverschiebung komplett SW *)
  1082. Quiet@ImageTransformation[pic5, ray21, {breite, Ceiling[hoehe/kernels/grain]},
  1083. DataRange->{
  1084. {-1, 1},
  1085. {fmin, fmax}
  1086. },
  1087. PlotRange->{
  1088. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1089. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1090. },
  1091. Resampling->rsp, Padding->"Fixed"],
  1092.  
  1093. (* 36 Frequenzverschiebung Front SW *)
  1094. Quiet@ImageTransformation[pic5, ray22, {breite, Ceiling[hoehe/kernels/grain]},
  1095. DataRange->{
  1096. {0, 2π},
  1097. {fmin, fmax}
  1098. },
  1099. PlotRange->{
  1100. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1101. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1102. },
  1103. Resampling->rsp, Padding->"Fixed"],
  1104.  
  1105. (* 37 Frequenzverschiebung Echo 1 SW *)
  1106. Quiet@ImageTransformation[pic5, ray23, {breite, Ceiling[hoehe/kernels/grain]},
  1107. DataRange->{
  1108. {0, 2π},
  1109. {fmin, fmax}
  1110. },
  1111. PlotRange->{
  1112. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1113. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1114. },
  1115. Resampling->rsp, Padding->"Fixed"],
  1116.  
  1117. (* 38 Frequenzverschiebung Echo 2 SW *)
  1118. Quiet@ImageTransformation[pic5, ray24, {breite, Ceiling[hoehe/kernels/grain]},
  1119. DataRange->{
  1120. {0, 2π},
  1121. {fmin, fmax}
  1122. },
  1123. PlotRange->{
  1124. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1125. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1126. },
  1127. Resampling->rsp, Padding->"Fixed"],
  1128.  
  1129. (* 39 Frequenzverschiebung Echo 3 SW *)
  1130. Quiet@ImageTransformation[pic5, ray25, {breite, Ceiling[hoehe/kernels/grain]},
  1131. DataRange->{
  1132. {0, 2π},
  1133. {fmin, fmax}
  1134. },
  1135. PlotRange->{
  1136. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1137. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1138. },
  1139. Resampling->rsp, Padding->"Fixed"],
  1140.  
  1141. (* 40 Frequenzverschiebung komplett Farbe *)
  1142. Quiet@ImageTransformation[pic6, ray21, {breite, Ceiling[hoehe/kernels/grain]},
  1143. DataRange->{
  1144. {0, 2π},
  1145. {fmin, fmax}
  1146. },
  1147. PlotRange->{
  1148. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1149. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1150. },
  1151. Resampling->rsp, Padding->"Fixed"],
  1152.  
  1153. (* 41 Frequenzverschiebung Front Farbe *)
  1154. Quiet@ImageTransformation[pic6, ray22, {breite, Ceiling[hoehe/kernels/grain]},
  1155. DataRange->{
  1156. {0, 2π},
  1157. {fmin, fmax}
  1158. },
  1159. PlotRange->{
  1160. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1161. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1162. },
  1163. Resampling->rsp, Padding->"Fixed"],
  1164.  
  1165. (* 42 Frequenzverschiebung Echo 1 Farbe *)
  1166. Quiet@ImageTransformation[pic6, ray23, {breite, Ceiling[hoehe/kernels/grain]},
  1167. DataRange->{
  1168. {0, 2π},
  1169. {fmin, fmax}
  1170. },
  1171. PlotRange->{
  1172. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1173. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1174. },
  1175. Resampling->rsp, Padding->"Fixed"],
  1176.  
  1177. (* 43 Frequenzverschiebung Echo 2 Farbe *)
  1178. Quiet@ImageTransformation[pic6, ray24, {breite, Ceiling[hoehe/kernels/grain]},
  1179. DataRange->{
  1180. {0, 2π},
  1181. {fmin, fmax}
  1182. },
  1183. PlotRange->{
  1184. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1185. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1186. },
  1187. Resampling->rsp, Padding->"Fixed"],
  1188.  
  1189. (* 44 Frequenzverschiebung Echo 3 Farbe *)
  1190. Quiet@ImageTransformation[pic6, ray25, {breite, Ceiling[hoehe/kernels/grain]},
  1191. DataRange->{
  1192. {0, 2π},
  1193. {fmin, fmax}
  1194. },
  1195. PlotRange->{
  1196. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1197. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1198. },
  1199. Resampling->rsp, Padding->"Fixed"],
  1200.  
  1201. (* 45 Frequenzverschiebung Hintergrund Farbe *)
  1202. Quiet@ImageTransformation[pic6, ray26, {breite, Ceiling[hoehe/kernels/grain]},
  1203. DataRange->{
  1204. {0, 2π},
  1205. {fmin, fmax}
  1206. },
  1207. PlotRange->{
  1208. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1209. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1210. },
  1211. Resampling->rsp, Padding->"Fixed"],
  1212.  
  1213. (* 46 Frequenzverschiebung Hintergrund SW *)
  1214. Quiet@ImageTransformation[pic5, ray26, {breite, Ceiling[hoehe/kernels/grain]},
  1215. DataRange->{
  1216. {0, 2π},
  1217. {fmin, fmax}
  1218. },
  1219. PlotRange->{
  1220. {-π+hvs/hzoom, π+hvs/hzoom} hzoom,
  1221. {-π/2+vvs/vzoom+x, -π/2+vvs/vzoom+x+π/kernels/grain} vzoom
  1222. },
  1223. Resampling->rsp, Padding->"Fixed"]
  1224.  
  1225. }, {x, 0, π-π/kernels/grain, π/kernels/grain}];
  1226.  
  1227. image[num_] := ImageAssemble[Table[{img[[x, num]]}, {x, kernels grain, 1, -1}]];
  1228. fi[x_] := ColorNegate[x];
  1229.  
  1230. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  1231. (* 13) Composite |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  1232. (* |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| *)
  1233.  
  1234. Table[image[n], {n, 1, 46, 1}]
  1235.  
  1236. gr2 = ImageMultiply[fi@image[19], fi@image[20]];
  1237. Gr2 = ImageMultiply[fi@image[36], fi@image[37]];
  1238. gr3 = ImageMultiply[fi@image[21], fi@image[22]];
  1239. Gr3 = ImageMultiply[fi@image[38], fi@image[39]];
  1240. ds2 = ImageMultiply[fi@image[09], fi@image[10]];
  1241. ds3 = ImageMultiply[fi@image[11], fi@image[12]];
  1242. ds6 = ImageMultiply[fi@image[14], fi@image[15]];
  1243. ds7 = ImageMultiply[fi@image[16], fi@image[17]];
  1244. se2 = ImageMultiply[fi@image[04], fi@image[05]];
  1245. se3 = ImageMultiply[fi@image[06], fi@image[07]];
  1246. sea = ImageMultiply[image[04], image[19]];
  1247. seb = ImageMultiply[image[05], image[20]];
  1248. sec = ImageMultiply[image[06], image[21]];
  1249. sed = ImageMultiply[image[07], image[22]];
  1250. seA = ImageMultiply[image[04], image[36]];
  1251. seB = ImageMultiply[image[05], image[37]];
  1252. seC = ImageMultiply[image[06], image[38]];
  1253. seD = ImageMultiply[image[07], image[39]];
  1254. bl2 = ImageMultiply[fi@image[24], fi@image[25]];
  1255. bl3 = ImageMultiply[fi@image[26], fi@image[27]];
  1256. Bl2 = ImageMultiply[fi@image[41], fi@image[42]];
  1257. Bl3 = ImageMultiply[fi@image[43], fi@image[44]];
  1258. se5 = ImageMultiply[fi@sea, fi@seb];
  1259. se6 = ImageMultiply[fi@sec, fi@sed];
  1260. Se5 = ImageMultiply[fi@seA, fi@seB];
  1261. Se6 = ImageMultiply[fi@seC, fi@seD];
  1262.  
  1263. "Lösung 1, v local" == vsolve[[1, 1]]/.dtf->"dt"/.vrf->"vr"/.vφf->"vφ"/.vϑf->"vϑ"/.v0f->"v0"
  1264.  
  1265. "Lösung 2, v local" == vsolve[[2, 1]]/.dtf->"dt"/.vrf->"vr"/.vφf->"vφ"/.vϑf->"vϑ"/.v0f->"v0"
  1266.  
  1267. "Meistens gilt Lösung 1, im Bereich der Ergosphäre manchmal Lösung 2"
  1268.  
  1269. "äußere Kontur"
  1270. bf3 = image[33]
  1271.  
  1272. "innere Kontur"
  1273. bf4 = image[34]
  1274.  
  1275. "Hintergrund, Milchstraße"
  1276. bkg = image[1]
  1277.  
  1278. "Hintergrund, Checkerboard"
  1279. cb1 = image[28]
  1280.  
  1281. "Horizont, Schale"
  1282. hrz = image[2]
  1283.  
  1284. "Horizont, Checkerboard"
  1285. cb2 = image[29]
  1286.  
  1287. "statische Checkerboard Scheibe, Geometrie"
  1288. cb3 = image[30]
  1289.  
  1290. "statische undurchsichtige Scheibe, Geometrie"
  1291. ds1 = image[8]
  1292.  
  1293. "statische transparente Scheibe, Geometrie"
  1294. ds4 = fi@ImageMultiply[ds2, ds3]
  1295.  
  1296. "rotierende undurchsichtige Scheibe, Geometrie"
  1297. ds5 = image[13]
  1298.  
  1299. "rotierende transparente Scheibe, Geometrie"
  1300. ds8 = fi@ImageMultiply[ds6, ds7]
  1301.  
  1302. "Scheibe, Textur, undurchsichtig"
  1303. se1 = image[03]
  1304.  
  1305. "Scheibe, Textur, transparent"
  1306. se4 = fi@ImageMultiply[se2, se3]
  1307.  
  1308. "Frequenzverschiebung Hintergrund, Farbe, Lösung 1"
  1309. bf1 = image[31]
  1310.  
  1311. "Frequenzverschiebung Hintergrund, SW, Lösung 1"
  1312. bf2 = image[32]
  1313.  
  1314. "Scheibe, Textur, transparent, Helligkeit A, Lösung 1"
  1315. se7 = fi@ImageMultiply[se5, se6]
  1316.  
  1317. "Scheibe, Textur, transparent, Helligkeit B, Lösung 1"
  1318. se8 = fi@ImageMultiply[fi@se7, fi@se7]
  1319.  
  1320. "Scheibe, Textur, transparent, Helligkeit C, Lösung 1"
  1321. se9 = fi@ImageMultiply[fi@se8, fi@se7]
  1322.  
  1323. "Frequenzverschiebung, Farbe, undurchsichte Scheibe, Lösung 1"
  1324. bl1 = image[23]
  1325.  
  1326. "Frequenzverschiebung, Farbe, transparente Scheibe, Lösung 1"
  1327. bl4 = fi@ImageMultiply[bl2, bl3]
  1328.  
  1329. "Frequenzverschiebung, undurchsichtige Scheibe, SW, Lösung 1"
  1330. gr1 = image[18]
  1331.  
  1332. "Frequenzverschiebung, transparente Scheibe, SW, Lösung 1"
  1333. gr4 = fi@ImageMultiply[gr2, gr3]
  1334.  
  1335. "Frequenzverschiebung Hintergrund, Farbe, Lösung 2"
  1336. Bf1 = image[45]
  1337.  
  1338. "Frequenzverschiebung Hintergrund, SW, Lösung 2"
  1339. Bf2 = image[46]
  1340.  
  1341. "Scheibe, Textur, transparent, Helligkeit A, Lösung 2"
  1342. Se7 = fi@ImageMultiply[Se5, Se6]
  1343.  
  1344. "Scheibe, Textur, transparent, Helligkeit B, Lösung 2"
  1345. Se8 = fi@ImageMultiply[fi@Se7, fi@Se7]
  1346.  
  1347. "Scheibe, Textur, transparent, Helligkeit C, Lösung 2"
  1348. Se9 = fi@ImageMultiply[fi@Se8, fi@Se7]
  1349.  
  1350. "Frequenzverschiebung, Farbe, undurchsichte Scheibe, Lösung 2"
  1351. Bl1 = image[40]
  1352.  
  1353. "Frequenzverschiebung, Farbe, transparente Scheibe, Lösung 2"
  1354. Bl4 = fi@ImageMultiply[Bl2, Bl3]
  1355.  
  1356. "Frequenzverschiebung, undurchsichtige Scheibe, SW, Lösung 2"
  1357. Gr1 = image[35]
  1358.  
  1359. "Frequenzverschiebung, transparente Scheibe, SW, Lösung 2"
  1360. Gr4 = fi@ImageMultiply[Gr2, Gr3]
  1361.  
  1362. Quit[]
  1363.  
  1364.  
  1365.  
  1366.  
RAW Paste Data