2012-03-08 3 views
2

ある色の2本の線の間にどのように影のある部分を描いていますか?2本の線の間に影の付いた部分を描く方法

私はGraphics2D.drawLine()を使用して線を描画し、線の間に半透明の陰影のある領域を持っています。

+1

を見ますあなたの選択した色のようなものを行うことで、色合いを変えることができます.brighter()。brightまたはdarker()。darker()。 –

答えて

3

あなたは間違った方法を考えています。領域を描画する場合は、その領域を描画します。その後、領域の上に線を描画します。 領域はGraphics.drawPolygonでレンダリングできます。

透光性を得るには2通りの方法があります。最も単純な方法(単色の場合)は、アルファ(新しいColor(0xAARRGGBB、true))を使用してColorインスタンスを作成し、描画に使用することです。 もう1つの方法は、Graphics2D.setCompositeをAlphaCompositeのインスタンスで使用することです色を使用しない要素の描画、例えばのdrawImage)

+0

My +1は今すぐ:-) –

4

これは、そのようなGradientPaint

気にいらで可能なはず:あなたがのための設定を含める必要があり、透明性のために

public void paint(Graphics g) { 
    Graphics2D g2 = (Graphics2D)g; 

    Polygon p = new Polygon(); 
    p.addPoint(0,100); 
    p.addPoint(100,100); 
    p.addPoint(100,200); 
    p.addPoint(100,200); 

    GradientPaint gp = new GradientPaint(0.0f, 100.0f, Color.red, 
      200.0f, 200.0f, Color.green, true); 
    g2.setPaint(gp); 
    g2.fill(p); 
} 

アルファチャンネル

作業例については
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 
      alpha)); 

私はこれを行う方法を、わからないが、あなたはとして機能する別のラインを描画するために、線を描画するために使用されるものよりも明るい色を使用することはできませんthis article

+0

+1半透明のグラデーションペイントを使用している関連する[例](https://sites.google.com/site/drjohnbmatthews/kineticmodel)も参照してください。 – trashgod

+0

私の+1は今すぐ:-) –

関連する問題