この文書の現在のバージョンと選択したバージョンの差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
canvasでベジェ曲線描画とクリッピング [2015/10/05 10:54] sou |
canvasでベジェ曲線描画とクリッピング [2015/10/05 11:38] (現在) sou |
||
|---|---|---|---|
| ライン 1: | ライン 1: | ||
| 使うシーンがあるか微妙ですが。。\\ | 使うシーンがあるか微妙ですが。。\\ | ||
| - | ベジェ曲線とは↓\\ | + | ■ベジェ曲線とは\\ |
| + | n個の制御点から得られるn-1次曲線です (wikipediaより)\\ | ||
| + | |||
| + | こちらに解りやすく図解してました。\\ | ||
| ・中学生でもわかるベジェ曲線\\ | ・中学生でもわかるベジェ曲線\\ | ||
| [[http://blog.sigbus.info/2011/10/bezier.html]]\\ | [[http://blog.sigbus.info/2011/10/bezier.html]]\\ | ||
| + | |||
| + | |||
| + | ベジェ曲線を簡単に描ける関数がAndroidAPIで用意されています。\\ | ||
| + | 前者が2次ベジェ, 後者が3次ベジェです。制御点の数が違います。\\ | ||
| + | |||
| + | 引数 : 制御点1X, 制御点1Y, 終点1X, 終点2Y\\ | ||
| Path # quadTo (float x1, float y1, float x2, float y2)\\ | Path # quadTo (float x1, float y1, float x2, float y2)\\ | ||
| + | |||
| + | 引数 : 制御点1X, 制御点1Y, 制御点2X, 制御点2Y, 終点1X, 終点2Y\\ | ||
| Path # cubicTo (float x1, float y1, float x2, float y2, float x3, float y3)\\ | Path # cubicTo (float x1, float y1, float x2, float y2, float x3, float y3)\\ | ||
| - | 制御点の数が違います | ||
| - | cubicToで一角だけ描画\\ | + | ※始点はPathの現在地になります。(デフォルト値はx0, y0)\\ |
| + | \\ | ||
| + | |||
| + | ■cubicTo(3次ベジェ)で一角だけ描画してみます\\ | ||
| @Override | @Override | ||
| protected void onDraw(Canvas canvas) { | protected void onDraw(Canvas canvas) { | ||
| ライン 32: | ライン 45: | ||
| {{:device-2015-09-29-163334.png?direct&300|}} | {{:device-2015-09-29-163334.png?direct&300|}} | ||
| - | 矩形を描画してクリッピング\\ | + | |
| + | ■矩形を描画してクリッピング\\ | ||
| @Override | @Override | ||
| protected void onDraw(Canvas canvas) { | protected void onDraw(Canvas canvas) { | ||