2012-08-12 31 views
16

Javaでdraw(Graphics g)メソッドで三角形を描画するのに問題があります。 pは「形状の左上隅」を表し三角形描画メソッド

public void draw(Graphics g) { 
    g.setColor(colorFill); 
    g.fillRect(p.x, p.y, width, height); 
    g.setColor(colorBorder); 
    g.drawRect(p.x, p.y, width, height); 
    drawHandles(g); 

: は、私はそうのような四角形を描画することができます。私はどのようにして三角形を同じように描くことができますか?

標準的な三角形の例を教えてもらえますか?

答えて

27

drawTriangle方法もないグラフィックスやGraphics2Dのではありません。あなたは自分でそれをする必要があります。 (nPointsをint型、int []を、[] xPointsをint型yPoints)

  • drawPolygonPolygon P)
  • drawPolyline(int型を

    • drawPolygon:あなたはdrawLineメソッドを使用して、3本の線を描画または1つのこれらのメソッドを使用することができます[] xPoints、int [] yPoints、int nPoints)

    これらのメソッドはポリゴンで機能します。ポイントセットで定義されたポリゴンを塗りつぶす場合は、プレフィックスdrawfillに変更することができます。私はドキュメンテーションのリンクを挿入しました。それらを使用する方法を学びましょう。

    また、GeneralPathクラスもあります。 Shapesを描画できるGraphics2Dで使用できます。見てみましょう:

  • +0

    drawPolygonは私が探していたものでした!ありがとうございます –

    +0

    @JonSnow:ようこそ! – davidbuzatto

    2

    あなたはShapeのAPIを使用してみてください。

    すべての三角形を描画についてですJPanel repaint from another classを見てみましょう、あなたはまた、GeneralPath & Drawing Arbitrary Shapes上に読むべきいくつかのアイデア

    ためgetPath方法に目を向けます。 https://processing.org/reference/PGraphics.html

    は、メソッドと呼ばれる三角形()があります:

    この方法は、あなたが処理ライブラリを使用することができます

    0

    Triangleを直接描画するコマンドはありません。三角形の描画ではここで線の概念を使用する必要があります。

    、すなわちg。drawLines(点の座標)

    1

    点Aを点Cに接続し、外側のループで点Aを同じ線のアルゴリズムで点Bに向かって移動させ、その線を繰り返し描画する。おそらくzデルタも含めることができますが、このzデルタも繰り返し増分されます。ラインアルゴリズムでは、各座標のデルタ変更のために2つまたは3つのスロープを計算し、2つを比例的に1に変更した後に1つのスロープを1に設定するだけで、接続されたメッシュパーティクル間の閉じた幾何学領域を描画する場合に非常に重要です。 Qt Elastic Nodesの例を見て、これをスケルトン上で伸ばした後にノード間に三角形を描画することを想像してみましょう。 As long as it will remain online

    0

    三角形を描く直接的な方法はありません。 これにはdrawPolygon()メソッドを使用できます。 drawPolygon(int x[],int y[], int number_of_points); 三角形を描く: (配列xとy座標のx座標を配列yで指定し、両方の配列の要素と等しくなる点の数を指定します。三角形にあなたは、合計で3ポイントを持っていることを意味している3×座標と3つのy座標を持つことになります) あなたは、以下の点を使って三角形を描きたいとします。(100,50),(70,100),(130,100)public void paint(Graphics g)内の次の操作を行います。

    int x[]={100,70,130}; 
    int y[]={50,100,100}; 
    g.drawPolygon(x,y,3); 
    

    同様に、必要な数だけポイントを使用して任意の図形を描くことができます。

    関連する問題