C# 原始代碼
RectangleF rf = new RectangleF(
new PointF(p0.X - width, p0.Y - width),
new SizeF(width * 2, width * 2));
Java 對應實現
import java.awt.geom.Rectangle2D;
import java.awt.geom.Point2D;
// 直接構造
Rectangle2D.Float rect = new Rectangle2D.Float(
(float)(p0.x - width),
(float)(p0.y - width),
(float)(width * 2),
(float)(width * 2)
);
// 或分步
Point2D.Float location = new Point2D.Float((float)(p0.x - width), (float)(p0.y - width));
java.awt.geom.Dimension2D size = new java.awt.geom.Dimension2D() {
public double getWidth() { return width * 2; }
public double getHeight() { return width * 2; }
};
Rectangle2D.Float rect2 = new Rectangle2D.Float(
(float)location.getX(), (float)location.getY(),
(float)size.getWidth(), (float)size.getHeight()
);
類對應表
| C# (System.Drawing) | Java (java.awt.geom) |
| PointF | Point2D.Float |
| SizeF | Dimension2D (介面) / 自定義實現 |
| RectangleF | Rectangle2D.Float |
| Rectangle | Rectangle (整數版) |
注意事項
- Java 2D 使用
float 單精度,C# float 同,精度一致
Rectangle2D 為抽象基類,Rectangle2D.Float / .Double 為具體實現
- 若需整數矩形,用
java.awt.Rectangle (x, y, w, h 均為 int)