この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
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) { |