> Java > java지도 시간 > 본문

Java의 그리기 모드 사용에 대한 간략한 분석

高洛峰
풀어 주다: 2017-01-17 16:00:10
원래의
1392명이 탐색했습니다.

그리기 모드는 나중에 그린 그래픽이 먼저 그린 그래픽과 겹칠 때 겹치는 부분의 색상을 결정하는 방법을 말합니다. 예를 들어, 나중에 그린 색상이 이전에 그려진 색상을 덮어쓰거나, 나중에 그린 두 색상과 먼저 그린 색상이 특정 규칙에 따라 혼합됩니다. 두 가지 주요 모드가 있습니다: 일반 모드와 XOR 모드: 일반 모드는 나중에 그려진 그래픽이 이전에 그려진 그래픽 위에 겹쳐서 이전 그래픽의 겹치는 부분이 더 이상 표시되지 않는 것입니다. XOR 모드는 그리기를 모양별로 색칠하는 것으로 처리합니다. XOR 모드로 그리는 경우 현재 그리는 색, 원래 그리는 색, XOR 모드에서 설정한 색에 대해 특정 작업을 수행하여 실제 그리는 색을 얻습니다. 그리기 모드를 설정하는 방법은 다음과 같습니다.
setPaintMode(): 그리기 모드를 오버레이 모드(일반 모드)로 설정합니다. 일반 모드는 그리기의 기본 모드입니다.
setXORMode(Color c): 그리기 모드를 XOR 모드로 설정하고, 매개변수 c는 XOR 모드에서 설정된 그리기 색상입니다.

배경색이 B이고, setXORMode()로 설정된 색상이 C이며, 배경색이 아닌 D가 그리기에 사용된다고 가정합니다. XOR 모드에는 실제 그리기 색상을 결정하는 규칙이 다음과 같습니다. 🎜>

B + B = C, 배경색으로 그리면 C색이 나타납니다.

D + D = B, 그래픽을 다시 그릴 때 원래 그려진 그래픽이 지워질 수 있습니다.

B + D = B와 D의 혼합 색상(B와 D가 동일하지 않은 경우).

D로 색칠한 다음 E로 색칠한 경우 결과는 다음과 같습니다.

D + E = D와 E의 혼합 색상(D와 E가 동일하지 않은 경우) ).

XOR 그리기 모드 예시

import javax.swing.*;
import java.awt.*;
public class Example7_4 extends JFrame{
  public static void main(String args[]){
    GraphicsDemo myGraphicsFrame = new GraphicsDemo();
  }
}
class ShapesPanel extends JPanel{
  SharpesPanel(){
    setBackground(Color.white);
  }
  public void paintComponent(Graphics g){
    super.paintComponent(g);
    setBackground(Color.yellow); //背景色为黄色
    g.setXORMode(Color.red); //设置XOR绘图模式,颜色为红色
    g.setColor(Color.green);
    g.fillRect(20, 20, 80, 40); //实际颜色是green + yellow的混合色=灰色
    g.setColor(Color.yellow);
    g.fillRect(60, 20, 80, 40); //后一半是yellow+yellow=read,前一半是yellow+灰色
    g.setColor(Color.green);
    g.fillRect(20, 70, 80, 40); //实际颜色是green+yellow的混合色=灰色.
    g.fillRect(60, 70, 80, 40);
    //前一半是(green+yellow)+gray =背景色,后一半是green+yellow = gray
    g.setColor(Color.green);
    g.drawLine(80, 100, 180, 200); //该直线是green+yellow = gray
    g.drawLine(100, 100, 200, 200); //同上
    /*再绘制部分重叠的直线.原直线中间段是灰色+灰色=背景色,延长部分是green+yellow=gray.*/
    g.drawLine(140, 140, 220, 220);
    g.setColor(Color.yellow); //分析下列直线颜色变化,与早先的力有重叠
    g.drawLine(20, 30, 160, 30);
    g.drawLine(20, 75, 160, 75);
  }
}
class GraphicsDemod extends JFrame{
  public GraphicsDemo(){
    this.getContentPane().add(new ShapesPanel());
    setTile("基本绘图方法演示");
    setSize(300, 300);
    setVisible(true);
  }
}
로그인 후 복사

Java 그리기 모드 사용에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!