scaling operations on a 2D graph, size of output sequence must not be the same as input
I am looking for an open source package (preferably Java but R or other languages would be ok too) that provides these 2 functions
1) points output_seq[] SCALE(points input_seq开发者_运维问答[], double factor)
In other words a sequence of doubles (x1,y1), (x2,y2)... is given as input that represents a graph (each point is connected to the next by a straight line) and a scaling factor is given. Then it returns a similar sequence as output. The catch is that the output sequence may have fewer or more elements than the input. For example, if I request magnification by a factor of 2.012 then the output sequence may have twice as many elements as the input. The scaling factor should be a double, not an integer. Lastly, it's important to return the output sequence as points (doubles), I have very little interest in the actual drawing on a screen beyond proving that it does the right thing.
2) points output_seq[] ROTATE(points input_seq[], double angle)
same as above, except there is no scaling but just rotation, the angle is from 0 to 359.9999 and is given in radians. The size of the output is always the same as the size of the input. Again the emphasis is on getting the output sequence as doubles, not so much on the actual drawing on a screen.
If you know the right terminology I should have used then let me know. Thank you so much.
In Java, Path2D
is suitable for 2D floating point coordinates. The lineTo()
method will add straight lines to the path. Because Path2D
implements the Shape
interface, rotate and scale are possible via createTransformedShape()
. One approach to interpolation, using PathIterator
, is shown here.
精彩评论