2D曲線をデータストレージのポイントに変換する
曲線、つまりパスを最小数のポイントに変換して、ファイルまたはデータベースに保存できるようにするアルゴリズムを作成しました。 この方法は簡単です。3つのポイントを等間隔で移動し、これらのポイントが形成するライン間の角度を測定します。角度が許容値よりも大きい場合、そのポイントまでの新しい3次曲線が作成されます。次に、ラインを前方に移動し、角度を再度測定します… Androidの知っている人のためにパス注こと-クラスdstPathは一方で、私は後でポイントを保存することができますので、配列にポイントを記録したカスタムクラス、あるsrcPathは地域労働組合の結果であり、したがって、私にとって何のキーポイントを持っていません保存する。 問題は、ソースパスが完全な円と長方形で構成されている下のコードで生成されたこの画像でわかるように、円が滑らかに見えないことです。許容角度とステップの長さを変更しようとしましたが、何も役に立ちません。このアルゴリズムの改善、または別のアプローチを提案できるかどうか疑問に思います。 編集:Android Javaを使用している人のためにコード全体を投稿したので、簡単に試してみることができます。 public class CurveSavePointsActivity extends Activity{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new CurveView(this)); } class CurveView extends View{ Path srcPath, dstPath; Paint srcPaint = new Paint(Paint.ANTI_ALIAS_FLAG); Paint dstPaint = new Paint(Paint.ANTI_ALIAS_FLAG); public CurveView(Context context) { super(context); srcPaint.setColor(Color.BLACK); srcPaint.setStyle(Style.STROKE); srcPaint.setStrokeWidth(2); srcPaint.setTextSize(20); dstPaint.setColor(Color.BLUE); dstPaint.setStyle(Style.STROKE); dstPaint.setStrokeWidth(2); dstPaint.setTextSize(20); …