hex6.net
ちょい絶Vol.3ネタ AS3のベジェ曲線(curveTo)で3Dしてみる
- 2008-04-23 (水)
- ActionScript
ちょい絶Vol.3で発表したものです。
ベジェ曲線にはアフィン不変性という特性があるので、CurveToを使って3Dを描画というネタでした。
赤色がアンカーポイント、緑色がコントロールポイントになってます。
左クリックしながらマウス移動で回転
8頂点でも、それなりに綺麗な正円が描画できます。
以下、主要部分のコード。
正円モデルデータの生成部分
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();
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();
- Comments: 0
- Trackbacks: 0
Haskell読書会に参加してきた
- 2008-04-03 (木)
- 勉強会
ちょっと遅くなったけど、3月30日にCSNAGOYAで行っているHaskell読書会に参加してきたので、その報告。
読書会なるものには初参加だったので、おっかなびっくりな感じで行ってきたけど楽しかった!
参加者は僕を入れて7人。
「ふつうのHaskellプログラミング」をみんなで読みながら、わからない事や疑問な事をぶつけ合い、途中で出てきたコードを参加者2人組くらいであーだこーだ言いながらペアプロで組んでいくスタイルでした。
今回の読書会では1章から3章まで進み、高階関数の理解までの内容でした。
読書会の後に全員で飲みに行ったんですが、話を聞くにみんな濃い人々ばかり。
プログラマじゃないけど、Perl書いている人とか.NETでバリバリ書いてる人とか、Ocamlメインでやってるとか。
次回はやった事をちゃんと復習してから行く所存。
- Comments: 0
- Trackbacks: 0
妄想力が足りてない
- 2008-03-23 (日)
- 雑記
http://0l0l.net/_/tari/_occhii105
約半数に足りてないとか言われてる。
- Comments: 0
- Trackbacks: 0
firefoxでemacsのキーバインドを使う
- 2008-03-06 (木)
- firefox
Firefox拡張機能"Vimperator"で高速ブラウジングをはじめようを見て、Emacs用もあるんじゃないかと探してみる。
あるじゃありませんか、Firemacsという機能拡張が。
これはエクセレントな機能拡張。ブラウザ操作が全てお馴染みの操作に変わりました。
一番素敵なのは、テキストエリア内でもずっとキーバインドが有効なこと、ブログ投稿もwikiもEmacsのキーバインドで書けるようになった!
なんで今まで探さなかったんだろう・・・。
ブラウザ操作は半ば諦めてたけど、こんなに快適になるとは思いませんでした。
- Comments: 0
- Trackbacks: 0
xhtmlで携帯3キャリア共通の初期入力モードを指定
- 2008-02-07 (木)
- mobile
携帯からフォームのinput要素にテキストを入力する時に、初期入力モードを指定することができます。
htmlの時はistyle属性等の合せ技で良かったけど、xhtmlになってからwap-input-formatを指定するようになりました。
色々とはまったので、忘れないようにメモ。
追記
コメントで指摘してくださったtaslamさん、Colosseumさん ありがとうございます。
Softbankは -wap-input-format を使用した場合、入力制限モードとなっていました。
記事を訂正しました。
Auの場合
WAP2.0の仕様に準拠しているようなので、仕様に従った書き方で通ります。
全角かな
半角英字
半角数字
半角カナはプロパティが存在しないため、指定できません。
DocomoとSoftbank
2社とも共通で通るのだけど、独自仕様となっているようで、 プロパティの値が違う。
(半角カナが指定できるようになっている)
※この指定方法だと、Softbankは制限モードになります。
例えば、「en」を指定すると、数字の入力は出来なくなります。
また、携帯側での文字種の変更も不可能です。
全角かな
半角カナ
半角英字
半角数字
3キャリアで共通の指定方法
wap-input-formatの値を続けて記述すれば通るようです。
DoCoMo,Auは初期入力モードの変更になりますが、Softbankは入力制限モードになります。
全角かな
半角カナ(Auは無いので全角かなで)
半角英字
半角数字
とりあえず、N900i、N902i、P902is、W41S、811SHで試したところOKでした。
- Comments: 2
- Trackbacks: 3
続・自転車買った!
- 2008-01-29 (火)
- 自転車
3月下旬まで待てません!
というわけで、2007年モデルを注文しました。
メッキ処理がないとか、そういうのは気にしない方向で。
- Comments: 0
- Trackbacks: 0
- 日記の検索
-

Powered by 早起き生活 - Feeds
- Meta



