File: [local] / OpenXM / src / cfep / tests / lorentz.rr (download)
Revision 1.1, Sun Mar 12 07:09:52 2006 UTC (18 years, 5 months ago) by takayama
Branch: MAIN
CVS Tags: R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, HEAD, DEB_REL_1_2_3-9
cfep version 1.1 is ready.
|
import("glib");
def lorentz() {
glib_window(-25,-25,25,25);
A=10; B=20; C=2.66;
P1=0; P2 = 3; P3 = 0;
Dt = 0.004; T = 0;
while (T <50) {
Q1=P1+Dt*(-A*P1+A*P2);
Q2=P2+Dt*(-P1*P3+B*P1-P2);
Q3=P3+Dt*(P1*P2-C*P3);
glib_putpixel(Q1,Q2); glib_flush();
T=T+Dt;
P1=Q1; P2=Q2; P3=Q3;
}
}
/* glib_clear(); glib_flush(); */
/* こちらは軌跡ではなく, 点が移動する. wait をいれてなくてもいいのが
遅い. もうすこし早くできるといいが... */
def lorentz2() {
glib_window(-25,-25,25,25);
glib_clear();
glib_line(0,0,25,0 | color=0x0000ff);
glib_line(0,0,0,25 | color=0x0000ff);
glib_set_pixel_size(4.0);
A=10; B=20; C=2.66;
P1=0; P2 = 3; P3 = 0;
Dt = 0.004; T = 0;
glib_flush(); glib_flush(); /* two dummy */
while (T <50) {
glib_remove_last(); glib_remove_last();
Q1=P1+Dt*(-A*P1+A*P2);
Q2=P2+Dt*(-P1*P3+B*P1-P2);
Q3=P3+Dt*(P1*P2-C*P3);
glib_putpixel(Q1,Q2 | color=0xff0000); glib_flush();
T=T+Dt;
P1=Q1; P2=Q2; P3=Q3;
}
}
end$