Java 控制台打印的值与屏幕上显示的值完全不同

Java 控制台打印的值与屏幕上显示的值完全不同,java,canvas,polygon,Java,Canvas,Polygon,下面是《Java基础2D游戏编程》一书中的一个例子。在那本书中, 其中一个示例演示了如何绘制多边形,在本例中,它是一个矩形。我开始抛弃sysouts,以便更好地理解 那张多边形图很有用 。。。那些系统输出完全把我弄糊涂了。sysouts打印的值与屏幕上显示的值完全不同。 console中的值无疑是错误的。但这可能是什么原因造成的呢 编辑:其他信息:Vector2f是一个保存X和Y浮点值的类。它还有平移、缩放、剪切和旋转整个多边形的方法 以下是绘制多边形的代码: public static voi

下面是《Java基础2D游戏编程》一书中的一个例子。在那本书中, 其中一个示例演示了如何绘制多边形,在本例中,它是一个矩形。我开始抛弃sysouts,以便更好地理解 那张多边形图很有用

。。。那些系统输出完全把我弄糊涂了。sysouts打印的值与屏幕上显示的值完全不同。 console中的值无疑是错误的。但这可能是什么原因造成的呢

编辑:其他信息:Vector2f是一个保存X和Y浮点值的类。它还有平移、缩放、剪切和旋转整个多边形的方法

以下是绘制多边形的代码:

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