The Way to Programming
The Way to Programming
Doing a project I got stuck with this. I have to implement a method that gets any two given points ( x, y) and scales them between [0,1]
I been trying to many different ways, I even browsed other site but I still don’t understand. This is the formula other sites used to scale it down, but I doesn’t seem to work
Code: Select all
(x-min)/(max - min)
This is my Example
double max = 1; double low = 0; double x = 50; double y = 100; double newPointX = (x-low)/(max-low); double newPointY = (y-low)/(max-low); System.out.println(newPointX); System.out.println(newPointY);
I tried do my own example where my Point is (50,100), so generally this should be scaled down to “[0,1]” but it doesn’t work. Can any one help with this small algorithm.
The scaling formula (from your original post) *does* work.
But it will work for the two individual axes – “X” (horizontal) and “Y” (vertical) – individually.
As in, your original point [50,100] really represents an X-value of 50 and an Y-value of 100. To apply the formula, you will have to indicate if these axis share a common scale – in which case, the max value is 100 and min is 50 (or zero) – or if they are separate scales – in which case, for X-axis the max may be 50, whilst for Y-axis may be 100.
Supposing they share a common scale (min=0, max=100): to normalize the X value, apply the formula: (50 – 0) / (100 – 0) » 0.5
Normalizing the Y value, you get 1.0, therefore the point really is [0.5, 1.0]
If you need it to be something else, you will have to muck around with the range values (max and min).
I had to create method that obtained the [Max, Min] Points. I feel that the logic to my problem IS my problem. hope that makes sense. Ha
Well, I had several methods that obtain the [Max, Min] of both [X,Y]
public double getMax(BunchOfObjectspoints){ double maxX = points.getAll().get(0).getX(); for( Point p : points.getAll()){ if(p.getX() > maxX){ maxX = p.getX(); } } return maxX; }
Now, I need a Scale method that is going to work around these points
Can any help me with this method?
public double scale(BunchOfObjectspoints , double x, double y){ double maxX = getMax(points); double maxY = getMaxY(points); double minX = getMinX(points); double minY = getMinY(points); double dx = maxX - minX; double dy = maxY -minY; double scaledx = (x-minX)/dx; double scaledy = (y-minY)/dy;
Now, my question is…What do I return? Sorry, this problem is giving me headaches. and I can’t figure out exactly.
Sign in to your account