File:Rotating spherical harmonics.gif

Rotating_spherical_harmonics.gif(445 × 445像素,文件大小:799 KB,MIME类型:image/gif、​循环、​21帧)


描述
English: Rotating spherical harmonics, to 4 vertical, to ±4 horizontal
Deutsch: Veranschaulichung einiger Kugelflächenfunktionen (um die z-Achse rotierend). Dargestellt ist , wobei l der Zeile und m der Spalte entspricht. Zeilen und Spalten werden jeweils bei null beginnend durchnummeriert
来源自己的作品
作者Cyp
授权
(二次使用本文件)
GNU head已授权您依据自由软件基金会发行的无固定段落及封面封底文字(Invariant Sections, Front-Cover Texts, and Back-Cover Texts)的GNU自由文件许可协议1.2版或任意后续版本的条款,复制、传播和/或修改本文件。该协议的副本请见“GNU Free Documentation License”。
w:zh:知识共享
署名 相同方式共享
本文件采用知识共享署名-相同方式共享 3.0 未本地化版本许可协议授权。
您可以自由地:
  • 共享 – 复制、发行并传播本作品
  • 修改 – 改编作品
惟须遵守下列条件:
  • 署名 – 您必须对作品进行署名,提供授权条款的链接,并说明是否对原始内容进行了更改。您可以用任何合理的方式来署名,但不得以任何方式表明许可人认可您或您的使用。
  • 相同方式共享 – 如果您再混合、转换或者基于本作品进行创作,您必须以与原先许可协议相同或相兼容的许可协议分发您贡献的作品。
本许可协议标签作为GFDL许可协议更新的组成部分被添加至本文件。

Source in C:

//GPL (as if anyone would want this anyway...)#include <stdio.h>#include <math.h>#define PI 3.14159265358979323846264338327950288//m>=0double cfac(int l, int m, double z) {  int x;  int i;  double r, s, t;  r=log((2*l+1)*(.25/PI))*.5;  r-=log(2)*l;  i=(l+m+1)>>1;  for(x=2;x<=l-i;++x) r-=   log(x); if(l-m<i) {/*for(   ;x<=l-m;++x) r+= 0*log(x);*/ x=l-m+1;  for(   ;x<=i  ;++x) r-=.5*log(x); } else {/*for(   ;x<=i  ;++x) r-= 0*log(x);*/ x=i+1;  for(   ;x<=l-m;++x) r+=   log(x); }  for(   ;x<=l+m;++x) r+=.5*log(x);  for(   ;x<=2*i;++x) r+=   log(x);  if(m) r+=.5*log(2);  r=exp(r)*((l^i)&1?-1:1)*(2*i-l-m?z:1);  s=-z*z;  t=r;  for(i=((l+m+1)>>1)+1;i<=l;++i) t+=r*=s*(2*i-1)*(2*i)*(l-i+1)/((double)(2*i-l-m-1)*(2*i-l-m)*i);  return(t);}double cval(int m, double x, double y) {  int i;  _Complex double d=x+1i*y, r;  for(r=1;m;m>>=1,d*=d) if(m&1) r*=d;  return(__real__ r);}void rend(unsigned char *c, int sx, int sy, int pit, int l, int m, double ang) {  int a, b;  double x, y, z, sa, ca, f, t, r;  sa=sin(ang); ca=cos(ang);  for(b=0;b<sy;++b) {    for(a=0;a<sx;++a) {    z=1-b*2/(sy-1.);      x=a*2/(sx-1.)-1;      t=1-x*x-z*z;      if(t<0) t=1e99; else {        y=-sqrt(t);        t=cos(.2)*z-sin(.2)*y;        y=sin(.2)*z+cos(.2)*y;        z=t;        t=ca*x+sa*y;        y=-sa*x+ca*y;        x=t;    f=cfac(l, m, z);        t=cval(m, x, y)*f;//printf("a%lf, %lf, %lf, %lf\n", t, x, y, z);      }      r=128+t*512; if(r<0) r=0; else if(r>255) r=255; c[a*3+b*pit  ]=(int)r|31;      r=128+t*256; if(r<0) r=0; else if(r>255) r=255; c[a*3+b*pit+1]=(int)r|15;      r=128+t*128; if(r<0) r=0; else if(r>255) r=255; c[a*3+b*pit+2]=(int)r|7;    }  }}unsigned char pic[256*256*3];int main(void) {  FILE *f;  char fn[100];  int a, l, m;  for(a=0;a<256*256*3;++a) pic[a]=255;  for(a=0;a<100;++a) {    for(l=0;l<=4;++l) for(m=0;m<=l;++m) rend(pic+m*27*3+l*27*134*3, 26, 26, 134*3, l, m, PI*2/100*a);//    for(l=0;l<=4;++l) for(m=0;m<=l;++m) rend(pic+m*51*3+l*51*256*3, 50, 50, 256*3, l, m, PI*2/100*a);//    rend(pic+4*51*3+0*51*256*3, 50, 50, 256*3, 47, 1, PI*2/100*a);//    rend(pic+4*51*3+0*51*256*3, 50, 50, 256*3, 47, 11, PI*2/100*a);//    rend(pic, 256, 256, 256*3, 5, 2, PI*2/100*a);    sprintf(fn, "sph%04d.ppm", a);    f=fopen(fn, "wb");    fprintf(f, "P6\n%d %d\n255\n", 134, 134);    fwrite(pic, 134*134*3, 1, f);    fclose(f);  }/*  int l, m, i;  double r;  for(l=0;l<=7;++l) for(m=0;m<=l;++m) {    printf("%d,%d: %lf", l, m, r=cfac(l, m));    for(i=((l+m+1)>>1)+1;i<=l;++i) printf(", %lf", r*=(double)(2*i-1)*(2*i)*(l-i+1)/((double)(2*i-l-m-1)*(2*i-l-m)*i));    printf("\n");  }*/  return(0);}

Source in Mathematica:

Export["Rotating spherical harmonics.gif", Table[  GraphicsGrid[   Table[    SphericalPlot3D[     1,     {\[Theta], 0, \[Pi]},     {\[CapitalPhi], 0, 2 \[Pi]},     ColorFunction -> Function[       {x, y, z, \[Theta], \[Phi], r},       Blend[        {RGBColor["#1F2F57"], RGBColor["#FFCFA7"]},        2*(Re[            SphericalHarmonicY[l, m, \[Theta], \[Phi]]*             Exp[- Sign[m] I t]] + 0.25)]],     ColorFunctionScaling -> False,     Mesh -> False,     Boxed -> False,     Axes -> False,     PlotPoints -> 10,     MaxRecursion -> 2,     ViewPoint -> Front,     ImageSize -> {80, 80}     ],    {l, 0, 5},    {m, 0, l}    ]   ],  {t, 0, 2 \[Pi], \[Pi]/10}  ] ]

说明

添加一行文字以描述该文件所表现的内容

此文件中描述的项目

描繪內容

文件历史

点击某个日期/时间查看对应时刻的文件。

日期/时间缩⁠略⁠图大小用户备注
当前2016年12月3日 (六) 12:062016年12月3日 (六) 12:06版本的缩略图445 × 445(799 KB)ChemmixChanged range to ℓ = 0, …, 4 as in original file.
2016年12月3日 (六) 11:542016年12月3日 (六) 11:54版本的缩略图533 × 533(1.1 MB)ChemmixBetter quality version generated in Mathematica: <code> Export[][][][][][Theta], 0, \[Pi]}, {\[CapitalPhi], 0, 2 \[Pi]}, ColorFunction -> Function[][Theta], \[Phi], r}, Blend[]["#1F2F57"], RGBColor["#FFCFA7"]}, 2*(Re[][][Theta]...
2005年8月12日 (五) 21:392005年8月12日 (五) 21:39版本的缩略图134 × 134(161 KB)CypRotating spherical harmonics, l=0 to 4 vertical, m=0 to ±4 horizontal, {{GFDL}}

以下2个页面使用本文件:

全域文件用途

以下其他wiki使用此文件:

元数据

🔥 Top keywords: Baike: 首页Special:搜索九龍城寨之圍城胖猫跳江事件Energy (組合)淚之女王背着善宰跑逆天奇案2金智媛习近平郭葦昀金秀賢 (男演員)不夠善良的我們九龍寨城邊佑錫伍允龍春色寄情人劉俊謙 (香港)張書偉怪獸8號虽然不是英雄葉乃文謝坤達神耆小子六四事件我的婆婆怎麼那麼可愛排球少年!!角色列表唐振剛2024年湯姆斯盃Seventeen (組合)蕭景鴻排球少年!!WIND BREAKER—防風少年—安東尼·愛德華茲 (籃球運動員)ILLIT中华人民共和国中華民國BABYMONSTER與鳳行張文傑BOYNEXTDOOR彭丽媛笑看風雲日本母亲节习明泽金惠奫徐巧芯從Lv2開始開外掛的前勇者候補過著悠哉異世界生活德雷克 (歌手)搜查班長1958支配物种乘風2024張員瑛承欢记嚴爵香港梅龍高速公路塌陷事故柯建銘葬送的芙莉蓮迷宮飯轉生貴族憑鑑定技能扭轉人生~繼承弱小領土後,招募優秀人才打造最強領土~为人民服务 (2022年电影)黃道十二宮IVE (組合)草榴社区歐倩怡沒有秘密周雨彤柯佳嬿無職轉生~到了異世界就拿出真本事~謝京穎埃马纽埃尔·马克龙破墓周處除三害 (電影)許瑋甯Twitter五月天打天下2逆天奇案李主儐大谷翔平家族榮耀之繼承者胡子彤郭晉安毛泽东Baike: 分類索引沈伯洋白紙運動文化大革命城市猎人 (2024年电影)2024年花蓮地震(G)I-DLE城市猎人朴成焄郭宁宁2024年優霸盃哥吉拉-1.0汤姆斯杯