Home

hex6.net

ちょい絶Vol.3ネタ AS3のベジェ曲線(curveTo)で3Dしてみる

ちょい絶Vol.3で発表したものです。

ベジェ曲線にはアフィン不変性という特性があるので、CurveToを使って3Dを描画というネタでした。

赤色がアンカーポイント、緑色がコントロールポイントになってます。


左クリックしながらマウス移動で回転

8頂点でも、それなりに綺麗な正円が描画できます。

以下、主要部分のコード。

正円モデルデータの生成部分

Actionscript:
public function CreateCircle(r:Number,n:uint):void {
    var radius:Number = r; // 円の半径
    var num:uint = n; // 頂点の数
    var nAngle:Number = 2*Math.PI / num; // 角度
   
    vertices = new Array(); // アンカーポイント格納
    controlls = new Array(); // コントロールポイント格納
   
    // 指定数に分割
    for (var i:uint=1;<=num;++i) {
        var theta:Number = i*nAngle;
        // アンカーポイントの座標
        var anc:Vector = new Vector((r*Math.cos(theta)),(r*Math.sin(theta)),0);
        // コントロールポイントの座標
        var ctr:Vector = new Vector(
        anc.x+r*Math.tan(nAngle/2)*Math.cos(theta-Math.PI/2),
        anc.y+r*Math.tan(nAngle/2)*Math.sin(theta-Math.PI/2),0);

        vertices.push(anc);
        controlls.push(ctr);
    }
}

描画部分

Actionscript:
var fvecstart:Vector = tform(vertices[0]);
var cvecstart:Vector = tform(controlls[0]);
var num:uint = vertices.length;

// 開始座標へ移動
g.moveTo(fvecstart.x,fvecstart.y);
g.beginFill(0x0000ff,1);

for(var i:uint=1;i<num ;++i){>
    fvec = tform(vertices[i]);
    cvec = tform(controlls[i]);
    g.curveTo(cvec.x,cvec.y,fvec.x,fvec.y);
}

// 開始座標に戻る
g.curveTo(cvecstart.x,cvecstart.y,fvecstart.x,fvecstart.y);
g.endFill();

Haskell読書会に参加してきた

ちょっと遅くなったけど、3月30日にCSNAGOYAで行っているHaskell読書会に参加してきたので、その報告。

読書会なるものには初参加だったので、おっかなびっくりな感じで行ってきたけど楽しかった!

参加者は僕を入れて7人。

「ふつうのHaskellプログラミング」をみんなで読みながら、わからない事や疑問な事をぶつけ合い、途中で出てきたコードを参加者2人組くらいであーだこーだ言いながらペアプロで組んでいくスタイルでした。

今回の読書会では1章から3章まで進み、高階関数の理解までの内容でした。

読書会の後に全員で飲みに行ったんですが、話を聞くにみんな濃い人々ばかり。

プログラマじゃないけど、Perl書いている人とか.NETでバリバリ書いてる人とか、Ocamlメインでやってるとか。

次回はやった事をちゃんと復習してから行く所存。

妄想力が足りてない

http://0l0l.net/_/tari/_occhii105

約半数に足りてないとか言われてる。

firefoxでemacsのキーバインドを使う

Firefox拡張機能"Vimperator"で高速ブラウジングをはじめようを見て、Emacs用もあるんじゃないかと探してみる。
あるじゃありませんか、Firemacsという機能拡張が。

これはエクセレントな機能拡張。ブラウザ操作が全てお馴染みの操作に変わりました。
一番素敵なのは、テキストエリア内でもずっとキーバインドが有効なこと、ブログ投稿もwikiもEmacsのキーバインドで書けるようになった!

なんで今まで探さなかったんだろう・・・。
ブラウザ操作は半ば諦めてたけど、こんなに快適になるとは思いませんでした。

早起き

2月最終日にして、ようやく8時30分起き。

自転車での通勤も今週は結局1回だけだった!

3月の自分に期待。

今日も遅刻したわけで。

ちょっとアイマスクと耳栓買ってくる。

今週こそはバイク<自転車で通勤。

xhtmlで携帯3キャリア共通の初期入力モードを指定

携帯からフォームのinput要素にテキストを入力する時に、初期入力モードを指定することができます。
htmlの時はistyle属性等の合せ技で良かったけど、xhtmlになってからwap-input-formatを指定するようになりました。

色々とはまったので、忘れないようにメモ。


追記
コメントで指摘してくださったtaslamさん、Colosseumさん ありがとうございます。
Softbankは -wap-input-format を使用した場合、入力制限モードとなっていました。
記事を訂正しました。

Auの場合

WAP2.0の仕様に準拠しているようなので、仕様に従った書き方で通ります。

wap-input-formatプロパティ

全角かな

CODE:
style="-wap-input-format:*M;"

半角英字

CODE:
style="-wap-input-format:*m;"

半角数字

CODE:
style="-wap-input-format:*N;"

半角カナはプロパティが存在しないため、指定できません。

DocomoとSoftbank

2社とも共通で通るのだけど、独自仕様となっているようで、 プロパティの値が違う。
(半角カナが指定できるようになっている)

※この指定方法だと、Softbankは制限モードになります。
例えば、「en」を指定すると、数字の入力は出来なくなります。
また、携帯側での文字種の変更も不可能です。

全角かな

CODE:
style="-wap-input-format:&quot;*&lt;ja:h&gt;&quot;"

半角カナ

CODE:
style="-wap-input-format:&quot;*&lt;ja:hk&gt;&quot;"

半角英字

CODE:
style="-wap-input-format:&quot;*&lt;ja:en&gt;&quot;"

半角数字

CODE:
style="-wap-input-format:&quot;*&lt;ja:n&gt;&quot;"

3キャリアで共通の指定方法

wap-input-formatの値を続けて記述すれば通るようです。
DoCoMo,Auは初期入力モードの変更になりますが、Softbankは入力制限モードになります。

全角かな

CODE:
style="-wap-input-format:&quot;*&lt;ja:h&gt;&quot;;-wap-input-format:*M;"

半角カナ(Auは無いので全角かなで)

CODE:
style="-wap-input-format:&quot;*&lt;ja:hk&gt;&quot;;-wap-input-format:*M;"

半角英字

CODE:
style="-wap-input-format:&quot;*&lt;ja:en&gt;&quot;;-wap-input-format:*m;"

半角数字

CODE:
style="-wap-input-format:&quot;*&lt;ja:n&gt;&quot;;-wap-input-format:*N;"

とりあえず、N900i、N902i、P902is、W41S、811SHで試したところOKでした。

初ピスト!

自転車が届きました。
初ピスト!

梱包された自転車

部屋が大変なことにw

梱包開けた状態

ご対面、ほぼ組み立てが完了してる

ギアが2つ付いている

ギアは2つ、とりあえずシングルスピードになってる。

完成

完成 。

今週からこれで通勤だ!

発送

自転車が発送された模様、今週末が楽しみになってきた!

さて、ライトを買ってこなくては。

続・自転車買った!

3月下旬まで待てません!
というわけで、2007年モデルを注文しました。

メッキ処理がないとか、そういうのは気にしない方向で。

Home

日記の検索
早起き生活
Powered by 早起き生活
Feeds
Meta

Return to page top