カテゴリー
未分類

curveToの憂鬱

thFlash.gifちと仕事で複合を動的に描画する必要があったのだけど、ベジェだとあんまきれいにできなくってちとはまり中。clipをattachしてラグランジェ補間してスプライン描画とかは別にいいんだけど、drawing methodのcurveToっていまいち使いこなせていない。(どーも各頂点からした曲線をコントロールポイントとアンカーポイントへ置換するところでになる・・)ベジェにすればきれいになるという話なのだけどがついていっておりません。歳だ・・・。
そもそも円を描くのに

function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void {
mc.moveTo(x+r, y);
mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y);
mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y);
}

とかかなり面倒臭いです・・。(まぁ、これぐらいならまだいいんだけどさ)
参考:Introduction to Macromedia Flash MX Drawing Methods
Advanced drawing methods in Macromedia Flash MX

「curveToの憂鬱」への2件の返信

この前の某案件では、思ったように曲線が引けなくて、ポイント400個ぐらい管理して、全部直線で引きましたよ。
orz

それやるとウチの場合はCPU負荷高くなっちゃって使い物にならなくなるんで、トゥーインでやると思いマフ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です