太さの変わるBezier曲線の生成 - その26 [考え中 - 太さの変わるBezier曲線]
今日もまた送別会があった。今日は初めて僕より年上。こないだのことがあったのでもったいないけどあまり飲まずにかえってきた。来月すぐまたある。しかしこう送別会が続くと出費がかさんで苦しい。
さて、AGG方式のSmoothingのNSBezierPathのカテゴリとしての実装の続き。今回はアルゴリズムそのものの実装。
太さの変わるBezier曲線の生成 - その25 [考え中 - 太さの変わるBezier曲線]
AGG方式のSmoothingをNSBezierPathにやらせるためのカテゴリを昨日から書き出した。昨日はカテゴリの入り口と、サブパスの端点を保持する小さなクラスを考えて、自分自身からサブパスを切り出すところまでをやった。今日はそのあと、Smoothingした曲線を作り直す。
太さの変わるBezier曲線の生成 - その24 [考え中 - 太さの変わるBezier曲線]
先週の続き。前回までNSBezierPathの復習を軽くやった。NSBezierPathのelementAtIndex:associatedPoints:メソッドを使って自分の端点座標を順にとってきて、それに中間制御点を追加してAGG方式のSmoothingを行うことにした。
太さの変わるBezier曲線の生成 - その23 [考え中 - 太さの変わるBezier曲線]
内挿方式のAGG方式の検討のおさらい中。NSBezierPathの復習の3回目、サブパスが閉じている場合にSmoothingを行うときの注意と、NSBezierPathのエレメントの微妙な問題、そして制御点を変更するときの方法について。
太さの変わるBezier曲線の生成 - その20 [考え中 - 太さの変わるBezier曲線]
先日突然思い出したかのように再開したタブレットによるBezier曲線の生成。前回からAnti-Grain Geometryというプロジェクトの産物のアルゴリズムをレビューしている。その2回目。
太さの変わるBezier曲線の生成 - その19 [考え中 - 太さの変わるBezier曲線]
何ヶ月ぶりかの続き。前回はじつに正月明けだった。その後忘れていたわけではなく、「優雅な白鳥も水面下では一所懸命水をかいているように」地道に勉強していたのであった。
タブレットから得られる情報は、Viewの上での2次元の位置の配列だけである。この点列からなめらかな曲線をどううやって得るか、つまり補間するにはどうするか、ということを考える。
ずいぶん前にスプラインを使うことを考えたけど、結局振動が起こるのがいやで諦めた。
ではどうするか。曲率にもとづく考え方をもう少し進めようかとも思ったけど、どう考えても膨大な計算が必要になる。厳密な曲率ではなく、計算量の少ない曲率に近い量を定義してそれに基づくか、といろいろいじっていたがなかなかいいアイデアが浮かばない。
そうしているうちに、全く違うアプローチでBezier曲線で補間する方法を紹介しているサイトを見つけた。そのレビューをしてみる。
太さの変わるBezier曲線の生成 - その18 [考え中 - 太さの変わるBezier曲線]
12月はずっと忙しくて、正月明けたと思ったらまたびっちり忙しくてなかなか進められない。つまらない。
前回、任意の微分可能な曲線を3次のBezier曲線で近似することを考えた。曲線間の「距離」を適当に導入して、それを最小にする、という考え方にした。具体的に実装してみないと効率や安定性の評価はできないけど、まあ、こんなもんだろ、ということで次、行こう。
近似対象の曲線との距離が必要な値に収束しなかった場合、どうするか、という問題。