gpt4 book ai didi

java - 在 JPanel 中绘制一个矩形,捕捉到最近的 x 像素

转载 作者:行者123 更新时间:2023-12-02 04:24:49 24 4
gpt4 key购买 nike

我有一个 Swing UI,用户应该能够在 JPanel 中单击并拖动(在某些背景图像上),以便能够定义给定区域。问题是屏幕上矩形的坐标和表示需要捕捉到它们所绘制区域的外部 4 个像素。背景图像将被放大,这样就无法在这些点之间设置边框,我希望 UI 能够反射(reflect)这一点。

举个例子,如果我单击并绘制一个从 (103, 105) 到 (203,205) 的矩形,则该矩形应该覆盖从 (100,104) 到 (204,208) 的区域 - 即可能的最小矩形这样所有角点的坐标都应该是 4 像素的倍数,并且实际单击的区域被完全覆盖。

我该如何去做呢?

最佳答案

好吧,我假设您有两个 Point 对象(开始、结束),因此您可以创建一个小方法来调整值。

这是一个入门的简单示例:

import java.awt.*;
public class Main
{
public static void main(String[] args) throws Exception
{
Point start = new Point(103, 105);
Point end = new Point(203, 205);

adjust(start, 4, true);
adjust(end, 4, false);

System.out.println(start);
System.out.println(end);
}

public static void adjust(Point p, int snap, boolean snapLower)
{
int modX = p.x % snap;
p.x = snapLower ? p.x - modX : p.x + snap - modX;

int modY = p.y % snap;
p.y = snapLower ? p.y - modY : p.y + snap - modY;
}
}

关于java - 在 JPanel 中绘制一个矩形,捕捉到最近的 x 像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32322402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com