時間をズラして分身

ワイヤーフレームのプログラム 円を追加

このスピンするコインのような動きを再現してみます。

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() を追加してみました。

v46.patch

$ 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に目がいってしまいますね。