在两点之间划一条线

时间:2010-11-18 18:21:02

标签: java drawing awt

您好 我有2分(X1,Y1)(X2,Y2)如何在它们之间划一条线? 感谢

4 个答案:

答案 0 :(得分:5)

在Swing中:

Graphics g;
g.drawLine(X1, Y1, X2, Y2);

如果您使用JPanel,则通常会将此代码放在paintComponent方法中:

@Override
protected void paintComponent(Graphics g) {
    g.drawLine(X1, Y1, X2, Y2);
}

要查看Graphics课程中的所有可用方法,请参阅Javadocs

答案 1 :(得分:2)

查看Graphics.drawLine方法。

您基本上需要覆盖一些小部件(如JPanel)或获取Canvas,并在paint方法中执行以下操作:

graphics.drawLine( p1.x, p1.y, p2.x, p2.y );

答案 2 :(得分:0)

对于JFrame,您将添加一个paint方法,该方法在JVM准备好在JFrame上绘制时运行,在继承JFrame类的类中。然后,在其中,您将调用图形的'drawLine'方法,如图所示(确保已导入“Graphics”类,并将X1,Y1,X2,Y2替换为您选择的整数。):

public void paint(Graphics g) {
    g.drawLine(X1,X2,Y1,Y2);
}

答案 3 :(得分:0)

您还可以尝试以下操作:

var draw = function(ctx,x1,y1,x2,y2) {

    ctx.strokeStyle = "Black";
    ctx.lineWidth = 4;
    ctx.beginPath();
    ctx.moveTo(x1,y1);
    ctx.lineTo(x2,y2);
    ctx.stroke();

};


var drawPoints = function(ctx,points) {

    ctx.strokeStyle = "Black";
    ctx.lineWidth = 4;
    for(var i = 0; i<points.length -1;i++){
        draw(ctx,points[i][0],points [i][1],points[i+1][0],points[i+1][1]);
    }

};


var ctx = canvas.getContext("2d")

现在将函数调用为:

drawPoints(ctx, points);

您可以将var points array更改为任意点。

var points = [[50,50],[50,100],[100,100],[100,50]];

这应该用黑线连接所有点。如果输入三个点,它将形成一个三角形,四个,一个正方形,依此类推。如果我输错了,请告诉我。