このスピンするコインのような動きを再現してみます。
wf_15.patch あたりのパッチの wf_ex.c の箇所
diff -urN wf-/wf_ex.c wf/wf_ex.c --- wf-/wf_ex.c 2015-12-24 00:00:00.000000000 +0900 +++ wf/wf_ex.c 2015-12-30 00:00:00.000000000 +0900 @@ -64,6 +64,9 @@ : @@ -301,9 +305,9 @@ { type_slide_way, &(struct way){ .n=2, .ps=(pos_t[]){{0,-20,0},{0,20,0}}, .ts=(double[]){4.5,4.5}, .vs=NULL, .dg=3} }, { type_slide_way, &(struct way){ .n=2, .ps=(pos_t[]){{-20,0,0},{20,0,0}}, .ts=(double[]){3,3}, .vs=NULL, .dg=3} }, { type_rot_way, &(struct rot_way){ - .l={D3_O,D3_I}, .deg_way={ .n=2, .vs=(double[]){0,360*2}, .ts=(double[]){1,1}, .ps=NULL, .dg=3} } }, + .l={D3_O,D3_I}, .deg_way=WAY_V2(0,360*2, 1,1, 3) } }, { type_end } }}, - .data = &(data_t){ type_cube } + .data = &(data_t){ type_circle, &(struct circle){ .r=1,.n=10*4 } } }}; data.type = type_arr;
確か下から上へと読むはずでした。
wf_13.patch あたりのパッチの wf_ex.c の箇所
diff -urN wf-/wf_ex.c wf/wf_ex.c --- wf-/wf_ex.c 2015-12-22 00:00:00.000000000 +0900 +++ wf/wf_ex.c 2015-12-23 00:00:00.000000000 +0900 : + data_t *lissajours = &(data_t){ type_op_data_set, &(struct op_data_set){ + .op = &(data_t){ type_arr, (data_t[]){ + { type_copy_timeshift, &(struct copy_timeshift){ + .n=10, .init_sec=0, .step_sec=-0.3, .init=D3_O, .step=D3_O } }, :
という事で、 時間をズラしながらコピーして分身させる機能を追加してみました。
yamlファイルをロードして、 文字列をeval()してしまうと時刻のパラメータは消えてしまうので、 その前に付け焼き刃的にゴニョゴニョしてます。
あと、 yamlファイル中に何度も同じ長い記述が現れるのもなんなので、 defsのキーの箇所で定義して展開できるように、 ut.py に defs_eval() を追加してみました。
$ mv rt_v45 rt_v46 $ cat v46.patch | ( cd rt_v46 ; patch -p1 ) $ cd rt_v46 $ make clean $ make
データロード時の処理が増えてますが、 いつもの速度確認のデータは、 そもそも時刻依存なしなので省略。
視線の先に何か目標物が欲しかったので、 球を平たくつぶした円盤を配置してみました。 (UFOと子機のよう)
$ ./cg.py eyep=[0,0,0],[200,200,100],10 sec=20 yaml=spin_coin.yaml data_name=all name=out_v46/coin_wf wf : frm : 599/600(99.8%) : total 9m 41.48s : rest 0.96s : 2018/06/05 22:56:41 frm : 600/600(100.0%) : fin 9m 41.57s $ ls -lt out_v46/ | head -rw-r--r-- 1 kondoh staff 1616074 6 5 22:56 coin_wf.mp4 :
$ ./cg.py eyep=[0,0,0],[200,200,100],10 sec=20 yaml=spin_coin.yaml data_name=all name=out_v46/coin_tst div=8 fps=8 : wh : 4800/4800(100.0%) : fin 0.06s frm : 160/160(100.0%) : fin 37.33s estimated 2.49 hour at 640*480 30fps
$ ./cg.py eyep=[0,0,0],[200,200,100],10 sec=20 yaml=spin_coin.yaml data_name=all name=out_v46/coin : wh : 307200/307200(100.0%) : fin 9.03s frm : 600/600(100.0%) : fin 1h 50m 12.39s $ ls -lt out_v46/ | head -rw-r--r-- 1 kondoh staff 581794 6 6 05:26 coin_2.mp4 -rw-r--r-- 1 kondoh staff 3142385 6 6 05:26 coin_1.mp4 -rw-r--r-- 1 kondoh staff 3964603 6 6 05:24 coin.mp4 :
子機のコインは意図した通りに動いてるようですが、、、 どうも、添え物的に配置してみた母艦のUFOに目がいってしまいますね。