縮放由點組成的曲線的最佳算法是什麼?例如:如何縮放由點組成的曲線?
Curve line (A):
o
o
o o o
o o o o o
o o o o o
o o o o o
o o
如果曲線(A)按比例縮小5%,則它看起來像這樣。
Output:
o
o o o
o o o o o
o o o o o
o o
如果曲線(A)縮放10%,則它看起來像這樣。
o
o
o
o
o o o
o o o o o
o o o o o
o o o o o
o o
o o
o o
我只是想知道的算法,概念或如何解決它的想法,但要使它更清晰的這裏是我想實現一些Java代碼。
class CurveLine
{
public static ArrayList<float[]> getScaledCurveLine
(float[][] curveLine, float percentage, bool enlarged)
{
ArrayList<float[]> scaledCurveLine = new ArrayList<float[]>();
/*
Some Algorithm for Scaling Curve Line
*/
return scaledCurveLine; //new set of points
}
public static void main (string args[])
{
float [][] curveLine = new float[20][2]; //set of points
curveLine[0][0] = 0; //x1
curveLine[0][1] = 5; //y1
curveLine[1][0] = 1; //x2
//and so on..
ArrayList<float[]> largerCurveLine = getScaledCurveLine(curveLine, 20, true);
ArrayList<float[]> smallerCurveLine = getScaledCurveLine(curveLine, 20, false);
}
}
我讀了一些算法,如縮放點「最近鄰插值」,但我不知道如果我在正確的道路上:(。
我迫切需要知道該怎麼辦這傢伙:(在此先感謝。
'點* = 0.95'或'點* = 1.1' - 一些語言標記或代碼可以給出一個真實的答案。 – Marco13
感謝@ Marco13的迴應..我放了一些java代碼使其更清晰。謝謝。 – Techreator
在您的示例中,縮小比例的曲線包含的點數少於原始點數,並且上調了一個點數。但是你沒有指定那些規則(例如,用相同的因子來縮放點的數量,使它們在x中保持等距,......)。如果沒有這樣的規則,@ Marco13的方法,保留所有的要點,並單獨移動它們,是我能想象的最簡單和最準確的解決方案。 –