在Java Swing中检查点是否在线,可以通过以下步骤完成:
public class PointOnlineCheck extends Frame {
private int pointX;
private int pointY;
public PointOnlineCheck() {
setSize(400, 400);
setVisible(true);
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
pointX = e.getX();
pointY = e.getY();
repaint();
}
});
}
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.RED);
g.fillOval(pointX - 5, pointY - 5, 10, 10);
int x1 = 100; // 直线上的点A的x坐标
int y1 = 100; // 直线上的点A的y坐标
int x2 = 300; // 直线上的点B的x坐标
int y2 = 300; // 直线上的点B的y坐标
int x = pointX; // 待判断的点C的x坐标
int y = pointY; // 待判断的点C的y坐标
// 计算点C到直线AB的距离
double distance = Math.abs((y2 - y1) * x - (x2 - x1) * y + x2 * y1 - y2 * x1) / Math.sqrt(Math.pow(y2 - y1, 2) + Math.pow(x2 - x1, 2));
if (distance == 0) {
g.drawString("点在线上", 150, 350);
} else {
g.drawString("点不在线上", 150, 350);
}
}
public static void main(String[] args) {
new PointOnlineCheck();
}
}
这个示例代码演示了如何在Java Swing中检查点是否在线上。对于更复杂的应用场景,可以根据具体需求进行扩展和优化。
领取专属 10元无门槛券
手把手带您无忧上云