簡體   English   中英

在兩點之間畫一條線

[英]drawing a line between two points

嗨,我有 2 個點(X1,Y1)(X2,Y2)如何在它們之間畫一條線? 謝謝

在搖擺中:

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

如果您在JPanel上繪圖,您通常會將此代碼放在paintComponent方法中:

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

要查看Graphics類上的所有可用方法,請參閱Javadocs

看看Graphics.drawLine方法。

您基本上需要覆蓋一些小部件(如 JPanel)或獲取 Canvas 並在paint方法中執行以下操作:

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

對於 JFrame,您將在繼承 JFrame 類的類中添加一個繪制方法,該方法在 JVM 准備好在 JFrame 上繪制時運行。 然后,在其中,您將調用圖形的 'drawLine' 方法,如圖所示(確保已導入“Graphics”類並將 X1、Y1、X2、Y2 替換為您選擇的整數。):

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

你也可以試試這個:

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]];

這應該用黑線連接所有點。 如果你輸入三個點,它會形成一個三角形,四個,一個正方形等等。 如果我犯了錯誤,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM