File:Lorentz transform of world line.gif

Lorentz_transform_of_world_line.gif(200 × 200像素,文件大小:166 KB,MIME类型:image/gif、​循环、​100帧)


摘要

描述
English: Changing views of spacetime along the world line of a rapidly accelerating observer

In this animation, the vertical direction indicates time and the horizontal direction indicates distance, the dashed line is the spacetime trajectory ("world line") of an accelerating observer. The small dots are arbitrary events in spacetime that are stationary relative to each other. The events passing the two diagonal lines in the lower half of the picture (the past light cone of the observer) are those that are visible to the observer.

The slope of the world line (deviation from being vertical) gives the relative velocity to the observer. Note how the view of spacetime changes when the observer accelerates. In particular, absolute time is a concept not applicable in Lorentzian spacetime: events move up-and-down in the figure depending on the acceleration of the observer.

Compare this to the absolute time apparent in Image:Galilean transform of world line.gif.
来源 自己的作品
作者 Cyp
Source code
InfoField
Source of program used to generate image:
//GPL
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define PI 3.141592653589793238462

#define SX 256
#define SY 256
#define PL 100
#define DN 2000

unsigned char img[SX][SY];

double path[PL+1][2], dots[DN][2];

void dodot(int x, int y, double f) {
  if(x<0||x>=SX||y<0||y>=SY) return;
  img[y][x]*=f;
}

void dospot(int x, int y) {
  dodot(x, y, .5);
  dodot(x+1, y, .75);
  dodot(x-1, y, .75);
  dodot(x, y+1, .75);
  dodot(x, y-1, .75);
}

void dobigspot(int x, int y) {
  int a, b;
  for(b=-3;b<=3;++b) for(a=-3;a<=3;++a) if(a*a+b*b<=9) dodot(x+a, y+b, (a*a+b*b)/10.);
}

void dospotd(double t, double x) {
  dospot((x+1)*(SX/2.), (-t+1)*(SY/2.));
}

void dosmallspotd(double t, double x) {
  dodot((x+1)*(SX/2.), (-t+1)*(SY/2.), .25);
}

void dobigspotd(double t, double x) {
  dobigspot((x+1)*(SX/2.), (-t+1)*(SY/2.));
}

int main() {
  char fn[100];
  int n, x, y, t, i, w;
  double a, b, da, db, ta, tb;
  FILE *f;
  path[0][0]=path[0][1]=0;
  for(t=0;t<=PL;++t) path[t][1]=0;
  for(n=1;n<10;++n) {
    a=rand()%20000/10000.-1; a/=n*n*n*n/200.; b=rand()%20000*(PI/10000);
    for(t=0;t<=PL;++t) {
      path[t][1]+=a*sin((2*PI/PL)*n*t+b);
    }
  }
  for(t=PL;t>=0;--t) path[t][1]-=path[0][1];
  path[0][0]=0;
  for(t=1;t<=PL;++t) {
    a=path[t][1]-path[t-1][1];
    path[t][0]=path[t-1][0]+sqrt(1+a*a);
  }
  for(t=0;t<DN;++t) {
    a=rand()%20000/10000.-1; b=rand()%20000/10000.-1;
    dots[t][0]=a*path[PL][0]/2; dots[t][1]=b*1000;
  }
  for(n=0;n<100;++n) {
    i=PL*n/100;
    a=path[i+1][0]-(da=path[i][0]); b=(db=path[i][1])-path[i+1][1];
    ta=path[PL][0]; tb=path[PL][1];
    a/=50.; b/=50.;
    for(y=0;y<SY;++y) for(x=0;x<SX;++x) img[y][x]=255;
    for(y=0;y<SY;++y) img[y][y*SX/SY]*=.5;
    for(y=0;y<SY;++y) img[y][(SY-y-1)*SX/SY]*=.5;
    for(w=-20;w<=20;++w)
      for(t=0;t<PL;++t) dospotd(a*(path[t][0]-da-w*ta)+b*(path[t][1]-db-w*tb),
                                b*(path[t][0]-da-w*ta)+a*(path[t][1]-db-w*tb));
    for(w=-20;w<=20;++w)
      for(t=0;t<PL;t+=10) dobigspotd(a*(path[t][0]-da-w*ta)+b*(path[t][1]-db-w*tb),
                                  b*(path[t][0]-da-w*ta)+a*(path[t][1]-db-w*tb));
    for(w=-20;w<=20;++w)
      for(t=0;t<DN;++t) dospotd(a*(dots[t][0]-da-w*ta)+b*(dots[t][1]-db-w*tb),
                                b*(dots[t][0]-da-w*ta)+a*(dots[t][1]-db-w*tb));
//if(n==0) printf("%lf; %lf, %lf, %lf; %lf, %lf, %lf, %lf, %lf\n", a*(path[PL][0]-da-1*ta)+b*(path[PL][1]-db-1*tb), path[PL][0], da, 1*ta, path[PL][1], db, 1*tb, path[0][0], path[0][1]);
    sprintf(fn, "lor%04d.pgm", n);
    f=fopen(fn, "wb");
    fprintf(f, "P5\n%d %d\n255\n", SX, SY);
    fwrite(img, 256*256, 1, f);
    fclose(f);
  }
}

维基百科

 本文件是英语维基百科特色图片(Featured pictures),并被视为最好的图像之一。

如果你认为本文件应该被选为维基共享资源特色内容,请推荐本文件
如果你拥有相似质量的可采用适当著作权许可协议发布的图像,一定要上传标记推荐它。

许可协议

GNU head 已授权您依据自由软件基金会发行的无固定段落及封面封底文字(Invariant Sections, Front-Cover Texts, and Back-Cover Texts)的GNU自由文件许可协议1.2版或任意后续版本的条款,复制、传播和/或修改本文件。该协议的副本请见“GNU Free Documentation License”。
w:zh:知识共享
署名 相同方式共享
本文件采用知识共享署名-相同方式共享 3.0 未本地化版本许可协议授权。
您可以自由地:
  • 共享 – 复制、发行并传播本作品
  • 修改 – 改编作品
惟须遵守下列条件:
  • 署名 – 您必须对作品进行署名,提供授权条款的链接,并说明是否对原始内容进行了更改。您可以用任何合理的方式来署名,但不得以任何方式表明许可人认可您或您的使用。
  • 相同方式共享 – 如果您再混合、转换或者基于本作品进行创作,您必须以与原先许可协议相同或相兼容的许可协议分发您贡献的作品。
本许可协议标签作为GFDL许可协议更新的组成部分被添加至本文件。

说明

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

此文件中描述的项目

描绘内容

image/gif

文件历史

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

日期/时间缩⁠略⁠图大小用户备注
当前2005年8月21日 (日) 09:242005年8月21日 (日) 09:24版本的缩略图200 × 200(166 KB)CypNew and improved - now with bigger and better dots
2005年8月21日 (日) 08:292005年8月21日 (日) 08:29版本的缩略图200 × 200(151 KB)Cyp{{GFDL}}

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

全域文件用途

以下其他wiki使用此文件:

查看本文件的更多全域用途