web-dev-qa-db-ja.com

三角形の描画方法

Javaのdraw(Graphics g)メソッドで三角形を描くのに問題があります。次のように長方形を描くことができます:

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

ここで、pは「形状の左上隅」を表します。同じ方法で三角形をどのように描画しますか?

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

18
Jon Snow

GraphicsにもGraphics2DにもdrawTriangleメソッドはありません。あなたは自分でそれをする必要があります。 drawLineメソッドを使用して3本の線を描くか、これらのメソッドのいずれかを使用できます。

これらのメソッドはポリゴンで機能します。ポイントセットで定義されたポリゴンを塗りつぶす場合は、プレフィックスdrawfillに変更できます。ドキュメントリンクを挿入しました。それらの使用方法をご覧ください。

GeneralPath クラスもあります。 Shapes を描画できるGraphics2Dで使用できます。ご覧ください:

28
davidbuzatto

Shapes APIを使用してみてください。

JPanel repaint from another class を見てください。これは三角形の描画に関するものです。いくつかのアイデアについてはgetPathメソッドを参照してください。

また、 GeneralPath任意の図形の描画 を読む必要があります。

このメソッドの適用は非常に簡単です AffineTransformation s

3
MadProgrammer

ラインアルゴリズムを使用してポイントAをポイントCに接続し、外側のループで、ポイントAを同じラインアルゴリズムとうねる座標でポイントBに向かって移動させ、その線の描画を繰り返します。また、zデルタを含めることもできます。zデルタも繰り返し増加します。ラインアルゴリズムの場合、各座標のデルタ変化に対して2つまたは3つの勾配を計算し、他の2つを比例的に変更した後、1未満の勾配を1に設定します。 Qt Elastic Nodesの例を見て、スケルトン上でこれをストレッチした後、ノード間に三角形を描くことを想像してください。 オンラインのままである限り

1
Chuck

描画三角形は、標準のJavaライブラリでは提供されません。ここにサンプルコードがあります。

http://www.dreamincode.net/forums/topic/52352-draw-line-triangle/

1
Naidu Ypvs

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

すなわち、g.drawLines(ポイントの座標)

0

三角形を描く直接的な方法はありません。これにはdrawPolygon()メソッドを使用できます。次の形式の3つのパラメーターを取ります:drawPolygon(int x[],int y[], int number_of_points);三角形を描画するには:(配列xのx座標と配列yのy座標、および両方の配列の要素に等しい点の数を指定します。三角形のようになります。 3つのx座標と3つのy座標があり、合計3つのポイントがあることを意味します。)次のポイントを使用して三角形を描画するとします。(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);

同様に、必要な数のポイントを使用して任意のシェイプを描画できます。

0
Oshin