一直留到現在,最近清理東西,想說紙都快爛了,都還沒驗證過我想的到底對不對,就用Matlab寫寫看,程式碼如下:
R= ;
r= ;
s= ;
r1=[0:0.005:pi*30];
r0=-r1*R/r;
X=s*cos(r0)+(R-r)*cos(r1);
Y=s*sin(r0)+(R-r)*sin(r1);
plot(X,Y);
就這樣,很簡單,可以拿來幹嘛呢?
如果把r0和r1關係的地方改成正的,
r0=r1*R/r;
然後隨便畫畫...
我試過用實際值,就是地球離太陽R=1.5億+38萬(公里),地球離月球s=38萬公里,r隨便設,r=40萬,結果就是一個很圓的圓,看不出形狀。
然後我試著把R寫很大,r相對小,s更小,就有點像是月球繞太陽的軌道了(但其實不是,因為這裡r0和r1的關係是-R/r,月亮這個值不知道是多少),綠色的是地球軌道,藍色是月球...
如果把程式寫成這樣,
R=10;
r=6.5;
s=9;
r1=[0:0.005:pi*30];
r0=-r1*R/r;
X=s*cos(r0)+(R-r)*cos(r1);
Y=s*sin(r0)+(R-r)*sin(r1);
Xout=r*cos(r0)+(R-r)*cos(r1);
Yout=r*sin(r0)+(R-r)*sin(r1);
plot(X,Y,Xout,Yout);
看起來就像統一發票上面那個,
最後,其實R,r,s的大小關係不用固定,r也可以比R大,然後程式裡是畫15個圈,也就是30pi,可以畫更多或更少,挺好玩的,像下面這個圖,