2012-03-08 2 views
2

음영 처리 된 영역을 특정 색의 두 줄 사이에 어떻게 그립니다.두 줄 사이에 음영 처리 된 부분을 그리는 방법

나는 선을 그리고 그 선들 사이에 반투명 음영 영역을 갖기 위해 Graphics2D.drawLine()을 사용하고 있습니다.

+1

나는 확실하지 않다,이 작업을 수행하는,하지만 당신은 역할을 다른 선을 그리려면 선을 그리는 데 사용되는 것보다 밝은 색상을 사용할 수 없습니다 방법 당신이 좋아하는 것을 당신의 선택 컬러. 밝은(). 밝게 또는 어둡게(). 어둡게()와 같은 것을함으로써, 그늘을 만들 수 있습니다. –

답변

3

잘못된 방향으로 생각하고 있습니다. 영역을 그리려면 그렇게하십시오. 나중에 그 영역의 맨 위에 선을 렌더링하십시오. 영역은 Graphics.drawPolygon으로 렌더링 할 수 있습니다.

반투명을 얻는 방법에는 두 가지가 있습니다. 가장 간단한 방법은 (단색의 경우) 알파 (새로운 Color (0xAARRGGBB, true))를 사용하여 Color 인스턴스를 만들고이를 드로잉에 사용하는 것입니다. 다른 방법은 Graphics2D.setComposite를 AlphaComposite의 인스턴스와 함께 사용하는 것입니다 색상을 사용하지 않는 요소의 도면, 예를 들면의 drawImage)

+0

내 +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이 지금 :-)옵니다. –

관련 문제