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は「形状の左上隅」を表します。同じ方法で三角形をどのように描画しますか?
誰かが標準三角形の例を教えてもらえますか?
GraphicsにもGraphics2DにもdrawTriangleメソッドはありません。あなたは自分でそれをする必要があります。 drawLine
メソッドを使用して3本の線を描くか、これらのメソッドのいずれかを使用できます。
これらのメソッドはポリゴンで機能します。ポイントセットで定義されたポリゴンを塗りつぶす場合は、プレフィックスdraw
をfill
に変更できます。ドキュメントリンクを挿入しました。それらの使用方法をご覧ください。
GeneralPath クラスもあります。 Shapes を描画できるGraphics2Dで使用できます。ご覧ください:
Shape
s APIを使用してみてください。
JPanel repaint from another class を見てください。これは三角形の描画に関するものです。いくつかのアイデアについてはgetPath
メソッドを参照してください。
また、 GeneralPath & 任意の図形の描画 を読む必要があります。
このメソッドの適用は非常に簡単です AffineTransformation s
ラインアルゴリズムを使用してポイントAをポイントCに接続し、外側のループで、ポイントAを同じラインアルゴリズムとうねる座標でポイントBに向かって移動させ、その線の描画を繰り返します。また、zデルタを含めることもできます。zデルタも繰り返し増加します。ラインアルゴリズムの場合、各座標のデルタ変化に対して2つまたは3つの勾配を計算し、他の2つを比例的に変更した後、1未満の勾配を1に設定します。 Qt Elastic Nodesの例を見て、スケルトン上でこれをストレッチした後、ノード間に三角形を描くことを想像してください。 オンラインのままである限り
描画三角形は、標準のJavaライブラリでは提供されません。ここにサンプルコードがあります。
http://www.dreamincode.net/forums/topic/52352-draw-line-triangle/
三角形を直接描画するコマンドはありません。三角形の描画には、ここで線の概念を使用する必要があります。
すなわち、g.drawLines(ポイントの座標)
三角形を描く直接的な方法はありません。これには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);
同様に、必要な数のポイントを使用して任意のシェイプを描画できます。