2011-08-21 6 views
1

私はオープンソースパッケージを探しています(JavaでもRでも他の言語もOKです)2Dグラフのスケーリング操作、出力シーケンスのサイズは入力と同じであってはなりません

1)[] []、二重因子input_seq SCALE(点)すなわち

ダブルスの配列(X1、Y1)は、(X2、Y2)が...グラフを表す入力として与えられるoutput_seqポイント(各点は次の直線に直線で結ばれます)、スケーリング係数が与えられます。次に、出力と同様のシーケンスを返します。キャッチは、出力シーケンスに入力よりも少ない要素または多くの要素が含まれる可能性があることです。たとえば、倍率2.012倍を要求すると、出力シーケンスは入力の倍の要素数を持つことがあります。倍率は、整数ではなく倍数でなければなりません。 最後に、出力シーケンスをポイント(倍精度)として返すことが重要です。実際の描画が画面上で正しく行われていることを証明すること以外はほとんど関心がありません。

2)[]、二重角度input_seq [] ROTATE(点)上記のように

同じoutput_seq指し、スケーリングちょうど回転何が存在しない以外は、角度は0から359.9999であり、そしてラジアンで与えられます。 出力のサイズは常に入力のサイズと同じです。 ここでも強調しているのは、画面上の実際の図面ではなく、出力シーケンスを倍にすることです。

正しい用語がわかっている場合は、私に知らせてください。 ありがとうございます。

+1

だから、「スケール」ではポイントの「密度」を上げたいと思っていますか?どんな補間技法で余分な点を生成すべきか?線形補間? – aioobe

+0

はい、密度を増減したいです。線形補間や他の種類のものはいいですが、私は好みがありません。 –

+2

ラジアンを使用する場合、角度は0から6.28になります...また、回転が行われるポイントを指定する必要があります。 – toto2

答えて

1

Javaでは、Path2Dは2D浮動小数点座標に適しています。 lineTo()メソッドは、パスに直線を追加します。 Path2DShapeインターフェイスを実装しているため、createTransformedShape()で回転と拡大縮小が可能です。 PathIteratorを使用する補間法の1つは、hereです。

+1

多くのおかげで、このソリューションを数日間勉強させてください。 –