改め Objective Technician

はぐれ技術者のやりたい放題

Papervision3D で Rubik's Mirror Blocks

2009-09-27 21:17:44 | プログラミング
ルーブックキューブには亜種が多数存在する。

そのうちで、 asymmetric な構造を持つ "Rubik's Mirror Blocks" というものがある。

オリジナルと原理は同じだけど、センター以外のキューブの形がユニークで、色ではなく形でそろえる。







シャッフルしたときの混沌っぷりがたまらん。


なんか、これの巨大なのが使徒として襲来してきそう。





こんな動き方をする↓
(ActionScript3.0 + Papervision3D で実装)

(画像クリックで動きます)


AS3ソースはこちら




考えた人すごい。

あなたをコンパイルしたい

2009-09-22 00:05:25 | 陸上競技


ステッカーもらった。




9月14日(Mon) 評定 夜 涼

ドリル
流し150m×3

9月15日(Tue) 瑞鳳 夜 涼

坂ダッシュ×6

9月16日(Wed) 評定 夜 涼

ドリル
流し150m×3
鉄棒
ポールドリル
ポール走×3

9月17日(Thu) ずいほう 夜 涼

坂ダッシュ80m×3×3

9月18日(Fri) ずいほう 夜 涼

坂ダッシュ80m×3×2

9月20日(Sun) 評定 夕 涼

jog
ドリル
ポールワーク
ポール走
鉄棒


9月21日(Mon) 評定 夕 涼

jog
ドリル
ポールワーク
振り上げ
ポール走
鉄棒




このあいだもう一回ヒザを診てもらって、だいぶ良くなっているとのことだったので、軽くポールワークをやってみた。


数ヶ月もマットで練習してなかった割には、短助走での突っ込みや振り上げの感覚はそのまま残ってる様子。

踏切足のヒザもなんとか大丈夫っぽい。





このごろ、自分のやっている陸上が競技ではなく嗜好品に成り下がってる気がして危機感を抱いている。





復帰戦まであと25日!!



Daydream Story ep.3

2009-09-21 08:43:51 | ムダ話
Kは寿司が好きな男。そして、女性にも優しい男性である。

ふたりの女性と別れてからしばらく経つが、3人目の女性は現れなかった。


ひとりで過ごす日々が続いていたある日、彼は行きつけの寿司屋に顔を出した。
いつものようにまぐろ寿司のあんこ乗せを食べ、あなごを黒みつで食べた後に、ほたてを注文した。


Kは決まって、ほたてにはシナモンをかけて食べる。
シナモンをかけて食べるほたて寿司は絶品なのだ。
シナモンのほろ苦い香りがほたての旨みとよく混ざり、キナコ餅のようにうまかった。


ふと、隣に座る女性からの視線に気づいた。


― 彼女も、ほたてにシナモンを振りかけて食べている。


なんとKに微笑みかけ、相席を申し込んできた。
もちろん彼は受け入れ、席に着く。


そのとき、彼女に注文が運ばれて来た。
ココナッツミルク入りのカニ味噌汁だった。


Kの目はみるみる輝き、彼女のココナッツミルク入りカニ味噌汁をひと口いただいた。
甘い香りが舌に広がり、鼻を包む。


ココナッツミルクと交じり合うカニの風味が、胃を元気にする。
彼女もKから、シナモンほたて寿司を一貫いただく。
ほたての濃厚な旨みがシナモンに溶け、さらに食欲をそそる。



ふたりとも、こんなに楽しい食事ができたのは初めてだった。
そしてもっとお互いを知りたいと思い、
Kと彼女は寿司屋を出て歩いた。


少し肩を寄り添って歩きながら、お互いの食生活の話をし、
食事を本当に楽しんでいる人がいないと嘆いた。


ひとしきり会話を終えたとき、あたりが静かだった。

月明かりがふたりを照らす静かな夜。


Kが彼女を見つめて交際を申し出ると、すぐに彼女もうなずいた。


Kは嬉しくなって彼女の手を握り、肩を抱き寄せた。

彼女も上目遣いで彼の目を見ている。



Kは意を決し、彼女に口づけをした。




それは、Kが今まで交際した女性たちの中で一番甘く苦い、恋と魚介の味がする口づけだった。






Fin






この記事はフィクションです。念のため


















Daydream Story ep.2

2009-09-20 00:02:32 | ムダ話
Kは寿司が好きな男。そして、女性にも優しい男性である。

Kの2度目の恋は22歳のとき。
その彼女と出合って半年経ったある日、寿司屋に行った。

そして、またもや口論になった。
彼女はKのあなごの食べ方が気に入らなかった。

Kは、あなごの握りを黒みつにつけて食べる。
彼女はKに、あなご寿司はタレで食べるのが普通だと言った。


「確かに、タレで食べる人が多いことは知っている。
でも、黒みつにつけて食べるあなご寿司もおいしい」

彼は笑ってそう言い、回ってきたあなごの握りを黒みつにつけておいしそうに食べた。
黒みつの濃厚な甘さとあなごの脂がほど良く混ざり、かりんとうのようにうまかった。

Kは彼女のために黒みつをたっぷりかけたあなごの握りを分けてあげたが、拒否された。
Kの出した黒みつのあなご寿司を、彼女は険しい顔で見つめた。

Kは黙って自分の皿にそのあなごを戻すと、哀しそうに彼女に説明を始めた。



「あなごは君で、黒みつは僕。
いくら僕が黒みつのように甘く愛しても、君は僕を拒否する。
僕はあなごとタレの相性や、どんな炙り具合が一番おいしいか知っている。
でも君はタレの味は知っていても、黒みつの味は知らない。
知る機会があるのに、拒否している。哀しいことだ」

そういうとKは席を立った。
彼女はKを呼びとめ、自分もすぐに食べると告げた。


Kは再び席につくと、大きなあなごの乗った握りを黒みつが入っている皿にドップリとつけ、彼女の皿に置いた。

あなごの脂と黒みつのテカリが、寿司屋の鈍い明りを反射している。
彼女は目をつむり、黒みつのあなご寿司を口の中に入れると、あなごの旨みが溶けた。


しかし黒みつの濃厚な甘みがあなごの旨みをすべて打ち消し、彼女の口の中を強烈な甘みが支配した。


みつの匂いが口から鼻に抜け、もはやあなご寿司とは呼べないものが、彼女の胃の中に納まった。



Kは彼女に聞いた。
「な、うまいだろ?」


その言葉に彼女は驚いて席を立った。


半年続いたKと彼女の日々も、それが最後になった。



つづく



この記事はフィクションです

Daydream Story ep.1

2009-09-19 22:29:51 | ムダ話
Kは寿司が好きな男。そして、女性にも優しい男性である。

彼は初恋の女性と初めて回転寿司を食べたとき、口論になった。
彼女はKのまぐろの食べ方が気に入らなかったのだ。

Kは、まぐろの握りにあんこを乗せて食べる。
醤油やワサビではなく、あんこ。

彼女はKに、まぐろの握りは醤油をつけて食べるのが普通だと言った。


「確かに、醤油とワサビで食べる人が多いことは知っている。でも、あんこを乗せて食べるまぐろ寿司もおいしい」

彼は笑ってそう言い、回ってきた皿を取り、握りの上にこしあんを器用に乗せて食べた。
あんこの甘い味とまぐろの脂がほど良く混ざり、揚げまんじゅうのようにうまかった。

Kは彼女にひとつ分けてあげたが、嫌がられた。
彼は黙って自分の皿にそれを戻すと、あんこを握り寿司から下ろし哀しそうに説明を始めた。


「あんこは君で、まぐろは僕。僕がいくら君を包んでも、交じり合わず平行線のまま。
僕はまぐろの握りを醤油で食べる味や、ワサビの程よく効いた味は知っている。
でも君は醤油やワサビの味は知っていても、あんこの味は知らない。
知る機会があるのに知ろうともしない。哀しいことだ」

そう言うと、Kは席を立った。
彼女は慌ててKを呼びとめ、自分もすぐに食べると告げた。


Kはゆっくり席に座ると、回ってきたばかりのまぐろの握りにつぶあんをたくさんのせて、彼女の皿に置いた。
まぐろの脂とつぶあんが光り輝いている。
彼女は上手に箸でそれを取り上げ口に運ぶと、まぐろの旨みが溶けた。

しかしあんこの甘みが舌の違う部分を刺激し、旨みを打ち消す。
彼女の口の中で、甘みと旨みが不思議なハーモニーを奏でる。



何度かみ締めても解決しない味。


やがてそれは口の中で飽和し、まずい食べ物になった。

Kは彼女に聞いた。
「な、うまいだろ?」


そのKの一言で、彼女は別れを決めた。


Kは初恋の相手を握り寿司のあんこ乗せで失くしたのであった。



つづく




この記事はフィクションです

PV3D(AS3):ジンバルロックの回避

2009-09-18 06:55:04 | プログラミング
ルービックキューブを作っていてハマった箇所についての自分メモ。

09/09/17 時点で、Papervision3D_2.1.920.swc では org.papervision3d.objects.primitives.* のプリミティブに対して直接回転をかけるメソッドやプロパティが全部オイラー角仕様になっている。


なので、

 obj.rotationX += rotDeg;

とか、

 obj.transform.calculateMultiply(obj.transform, Matrix3D.rotationY(rotDeg * Math.PI / 180));

とかみたいに回転をかけようとしても、ジンバルロックが起きて自由自在に操作ができない。



これは、org.papervision3d.core.math.Quaternion のクォータニオンを使えば回避できる。

でも、内部的に Quaternion を使って一発で座標変換をしてくれる関数は org.papervision3d.core.math.Matrix3D にはまだ実装されていない様子。


操作自体は数行で簡単に書けるから、下みたいな関数をひとつ作っておけば、後はもう思った通りに動いてくれる。


 //任意軸回りの回転 (x, y, z 軸回転角[°], org.papervision3d.objects.primitives.* の回転対象)
 public static function rotate3D(degX:Number, degY:Number, degZ:Number, obj:Cube):void {
			
  var pos1:Quaternion = Quaternion.createFromMatrix(obj.transform);
  var pos2:Quaternion = Quaternion.createFromEuler(degX, degY, degZ, true);

  pos2.normalize();
  pos2.mult(pos1);
  pos2.normalize();
						
  obj.copyTransform(Matrix3D.quaternion2matrix(pos2.x, pos2.y, pos2.z, pos2.w));		
			
 }





しかし、この点を差し引いても、Flash でこんなに 3D 表現ができるのは十分すごい。





ちなみに、クォータニオンを使わないで、オイラー角で間違えちゃった場合はこんなことになる。

↓画像クリックで動きます



AS3ソースはこちら


でも、これはこれで見てて楽しいかもしれない。






そういえば WiiFlash 0.4.5 でもまだ Wii MotionPlus には未対応。

現在、WiimoteLib v1.8 のベータ版ではジャイロセンサの生データだけが取得できる。




どれもこれも、バージョンアップが待ち遠しいですたい。

PV3Dでルービックキューブ, WiiFlash + Papervision3D

2009-09-17 00:03:50 | プログラミング
Papervision3D の勉強がてら、前に Java3D で作ったルービックキューブを Flash に移植した。


絵をクリックすると動きます↓。








AS3ソースはこちら

半透明なほうのソースはこちら





動く動く。ヌルヌル動く。

これはイイ。




さっそく、WiiFlash との合わせ技で適当に作ってみた。




AS3ソースはこちら







ちょっと遊びすぎた。


いい加減、仕事に戻ろう…。


疾走時の接地ブレーキをWiiリモコンで測定

2009-09-14 00:41:52 | 陸上競技
これの続き



一般に疾走時には、足を接地する度に体の重心は水平方向に減速と加速を繰り返している。

平均して等速運動してるように思えるのは、接地ブレーキと推進力の大きさがほぼ同じとき。


同じ速さで等速運動するなら、減速/加速の大きさが小さいほど省エネで走れるということになる。


接地ブレーキを極限まで小さくできればどこまでも加速できるのか? という発想については論点がずれるのでとりあえず置いといて…




果たして、減速/加速の大きさはどの程度か。


これを調べるには、前回やった方法で、そのままWiiリモコンの水平方向の加速度センサの値を取得すればいい。

実験に使ったC#ソースはこちら

前と同じ条件でやってみた。下図は、スタンディングからの走り出し数歩のデータ。
Wiiリモコンは右手で持って骨盤の右側に密着。プラスが進行方向。







加速段階のはずだけど平均して水平方向加速度がマイナスな気がするのは、たぶんリモコンが微妙に傾いてたからかもしれない。



まず、Wiiリモコンは右側の腰だったから、一番大きく減速してるところが右足の接地開始部分のはず。

そこから加速のピークまでが右足接地に対応するとして、その次の減速がたぶん左足の接地。

で、そこから加速が二段階ある。

一発目がいわゆる「乗り込み」? それでまた減速して(?)二発目がたぶん左足の離陸?

まだちょっと謎。

???↓


にしては、滞空時間が短すぎる気がするけど、走り出しだからこんなもんなのか。




ちなみに、歩行時の水平方向加速度はこんなだった↓。



こっちは分かりやすい。



中間疾走時のデータについては、波形がちょっとnoisyでうまく解釈できないので、またこんどきれいに測れたときに。


データが自分のだけなので他の人との比較してどうとかは言えないけど、最初のグラフが正しいとして、この2秒間で重心に加わった力の絶対値を積分して、仮にこの間に15m進んだなら、要したエネルギーは単純計算で(鉛直方向の運動は無視)


66.9[m/ss]/100×66[kg]×15[m]=6.6×102[J]


これは、150[cc]の水の温度を約1[℃]上昇させる熱量に相当する。


仕事率は 330[W](≒0.45馬力)。要するにこの数値が小さいほど省エネで走れていることになる。






…合ってる?


めくるめけ週末

2009-09-13 21:20:51 | ムダ話
高校の文化祭、兼、パフォーマンス愛好会(ジャグリングの類の集まり)の同窓会。





シェーカーカップとシガーボックスの後輩が前よりも桁違いに上達しててビックリした。

コンタクトジャグリングの演技もあった。種目も増えてこれからがまた楽しみだ。

ヨーヨーの少年よがんばれ。





あと、あんなに汚かった校舎がキレイになっててビックリした。

なんか小奇麗すぎて浦高らしくない。


それでも応援団の展示にはウケた。さすが。




仙台帰って来たら、商店街でなんとタイムリーにストリートパフォーマーがいた。

ボールとディアボロとコンタクト。
文句なしに上手かった。



ここ一週間立て続けにこういうの見てて、なんかうずうずしてきた。

研究の合間にまた練習しようか。
















さいたまついでに鉄道博物館にも行った。














ところで、博物館とか科学館とか行くと、動く展示のボタンが誰もいないのにONになってるのをけっこう見る。

上野の科学博物館の地下3階とか。


全部終わるまでちゃんと見ようよ。押した人!


あと、親子連れがあれこれ押したり引いたり回したりしてるのを見てて、「あなたそれの意味わかってないでしょう」と突っ込みたくなることがよくある。




















それで、昨日の今日でTOEIC。


うん。これはヤバイ。どうしようもなくヤバイ。














「ごめんなさい。こんなとき、どんな顔をしたらいいか分からないの」


「笑ってんじゃねぇよ」

踏切時の体にかかる力をWiiリモコンで測定

2009-09-11 21:41:37 | 陸上競技
跳躍選手の踏切時には、一瞬の間に体重の何10倍という力がかかると言われている。

ジョグでさえ接地時に加わる力は体重の数倍だという。



平均のGなら、接地時間を見積もって運動量と力積の関係から概算できるけど、瞬間最大の加速度は計算じゃ求められない。


それなら測ってみようではないか。

Wiiリモコンの加速度センサで。



測定対象は以下の4つ。

1:歩行

2:ジョグ

3:スプリント

4:踏み切り



測定:

片手でWiiリモコンを持って骨盤に密着させる。その状態で運動しながら、鉛直方向の加速度センサの値を記録。

PCとの通信はBluetooth。サンプリング間隔は20[ms]。測定できる加速度の範囲は ±5(×9.8) [m/ss]。


ノートPCを外に持ち出して、平日の昼間に研究所の敷地内でダバダバした。


実験に使ったC#ソースはこちら


結果↓

鉛直方向加速度の時間変化。-1.0が静止時のライン。












波形と運動の対応はとりあえず置いといて、マイナス側の最大値を見ると、だいたい

walk: 1.5G
jog: 3.5G
dash(流し程度): 4.5G
jump: 5G 以上

ぐらい。


やっぱり踏み切りのときは測定範囲を振り切ってしまった。

あと、サンプリングがそんなに細かくないから、スプリントではたぶん 5G 以上かかってる。




測定範囲の制限をなんとか工夫して、踏切時に加わる加速度を測れないかと考え中だけど今のところうまい方法がまだ思いつかない…。








ちなみに、波形と運動との対応はこんな感じ↓。








グラフが変なとこで振動したりプラス側に飛び出たりしてるのは、たぶん、センサの中身のオーバーシュートとかリモコンを持つ手のブレとかが原因。

のはず。





でも、軽く流すぐらいだと体重の数倍(3~5倍)の負荷だというのが確認できた。




次回へ続く