您好
我有2分(X1,Y1)
和(X2,Y2)
如何在它们之间划一条线?
感谢
答案 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]];
这应该用黑线连接所有点。如果输入三个点,它将形成一个三角形,四个,一个正方形,依此类推。如果我输错了,请告诉我。