I want to draw polyline with positive and negative coordinates.
e.g.
125,66
126,62
-128,59
-127,55
-125,51
-124,47
-122,43
-121,40
-119,38
-118,36
These are the sample coordinate to draw the polyline in Jframe.
After drawing the polyline it will show the line for positive coordinates only.
int j =0;
System.out.println(imageByteArray.length);
int[] x = new int [imageByteArray.length/2];
int[] y = new int [imageByteArray.length/2];
for (int i = 0; i <= imageByteArray.length-1;)
{
System.out.println(imageByteArray[i] +","+imageByteArray[i+1]);
int s1 = imageByteArray[i];
int s2 = imageByteArray[i+1];
j++;
i = i+2;
}
gp.drawPolyline( x, y, j );
Please help me to understand how we can draw polyline with such coordinates using java technology.
Advertisement
Answer
Let’s say your drawing panel (JPanel) is 400 x 400 pixels.
Let’s take your polyline. I’m assuming these are x, y coordinates.
125, 66 126, 62 -128, 59 -127, 55 -125, 51 -124, 47 -122, 43 -121, 40 -119, 38 -118, 36
The y coordinates range from 36 to 66. These coordinates fit easily in the 0 to 399 range of our drawing panel.
The x coordinates range from -128 to 126. These coordinates don’t fit in the 0 to 399 range of our drawing panel.
The absolute difference between the minimum and the maximum x value is 254. 254 is less than the 400 pixels we have to work with.
Therefore, by adding 128 to each x coordinate, we can translate the polyline into something that can be drawn on our 400 x 400 drawing panel.