Java 控制台打印的值与屏幕上显示的值完全不同
下面是《Java基础2D游戏编程》一书中的一个例子。在那本书中, 其中一个示例演示了如何绘制多边形,在本例中,它是一个矩形。我开始抛弃sysouts,以便更好地理解 那张多边形图很有用 。。。那些系统输出完全把我弄糊涂了。sysouts打印的值与屏幕上显示的值完全不同。 console中的值无疑是错误的。但这可能是什么原因造成的呢 编辑:其他信息:Vector2f是一个保存X和Y浮点值的类。它还有平移、缩放、剪切和旋转整个多边形的方法 以下是绘制多边形的代码:Java 控制台打印的值与屏幕上显示的值完全不同,java,canvas,polygon,Java,Canvas,Polygon,下面是《Java基础2D游戏编程》一书中的一个例子。在那本书中, 其中一个示例演示了如何绘制多边形,在本例中,它是一个矩形。我开始抛弃sysouts,以便更好地理解 那张多边形图很有用 。。。那些系统输出完全把我弄糊涂了。sysouts打印的值与屏幕上显示的值完全不同。 console中的值无疑是错误的。但这可能是什么原因造成的呢 编辑:其他信息:Vector2f是一个保存X和Y浮点值的类。它还有平移、缩放、剪切和旋转整个多边形的方法 以下是绘制多边形的代码: public static voi
public static void drawPolygon(Graphics g, Vector2f[] polygon)
{
Vector2f P;
Vector2f S = polygon[polygon.length - 1];
System.out.println("Starting drawing:");
for (int i = 0; i < polygon.length; ++i)
{
//Just for testing, calls g.setColor(), nothing relevant to the problem
setColor(i, g);
P = polygon[i];
//Debug drawing, draws the coordinates (Like in screenshot, in red color: '(322, 250)')
g.drawString("(" + (int)S.x + ", " + (int)S.y + ")", (int)S.x, (int)(S.y));
//Draws the rectangle, line by line in for loop (first red, then green, blue, orange)
g.drawLine((int) S.x, (int) S.y, (int) P.x, (int) P.y);
//System outs that prints completely different values than what is shown on screen!
System.out.println("S.x = " + (int)S.x);
System.out.println("S.y = " + (int)S.y);
System.out.println("P.x = " + (int)P.x);
System.out.println("P.y = " + (int)P.y);
System.out.println("Drawing line from (" + (int)S.x + "," + (int)S.y + ") to (" + (int)P.x + "," + (int)P.y + ")");
S = P;
}
System.out.println("End of drawing a polygon");
}
这是矩形和drawString()方法的屏幕截图
我真的,真的很困惑。我开始没有主意了。我正在使用Eclipse。有什么想法吗?什么是
Vector2f
?这可能是一个溢出问题…哎呀,忘了提那个了。我添加了关于该类的信息是的,但是x
和y
的数据类型是否存在差异?如果在调用drawString之前移动System.out.printlns,我想不会有任何差异?尝试过了,没有任何更改。控制台仍然打印奇怪的值。
Starting drawing:
S.x = -316
S.y = -388
P.x = -316
P.y = -468
Drawing line from (-316,-388) to (-316,-468)
S.x = -316
S.y = -468
P.x = -236
P.y = -468
Drawing line from (-316,-468) to (-236,-468)
S.x = -236
S.y = -468
P.x = -236
P.y = -388
Drawing line from (-236,-468) to (-236,-388)
S.x = -236
S.y = -388
P.x = -316
P.y = -388
Drawing line from (-236,-388) to (-316,-388)
End of drawing polygon