欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java的繪圖模式使用淺析

 更新時間:2015年10月09日 08:53:39   投稿:goldensun  
這篇文章主要介紹了Java的繪圖模式使用淺析,以一個小例子大概列舉了XOR模式下能干的一些事情,需要的朋友可以參考下

繪圖模式是指后繪制的圖形與早先繪制的圖形有重疊時,如何確定重疊部分的顏色。例如,后繪制的覆蓋早先繪制的;或者后繪制與早先繪制的兩種顏色按某種規(guī)則混合。主要有正常模式和異或模式兩種:正常模式是后繪制的圖形覆蓋在早先繪制的圖形之上,使早先販圖形的重疊部分不再可見。異或模式把繪圖看作是按圖形著色。異或模式繪圖時,將當(dāng)前正要繪圖的顏色、原先繪制的顏色以及異或模式設(shè)定的顏色作特定的運(yùn)算,得到實(shí)際繪圖顏色。設(shè)置繪圖模式的方法有:
setPaintMode():設(shè)置繪圖模式為覆蓋模式(正常模式)。正常模式是繪圖的默認(rèn)模式。
setXORMode(Color c):設(shè)置繪圖模式為異或模式,參數(shù)c為異或模式設(shè)定的繪圖顏色。

設(shè)背景色為B,用setXORMode()設(shè)置的顏色為C,另用某個非背景色D繪圖,XOR模式有以下確定實(shí)際繪圖顏色的法則:

  • B + B = C,用背景色繪圖,出現(xiàn)C顏色。
  • D + D = B,當(dāng)一個圖形重畫時就能清除原先畫的圖形。
  • B + D = B和D的混合色(當(dāng)B,D不相同時)。

如果某區(qū)域已用D著色,再用E著色,則結(jié)果是:

  • D + E = D和E的混合色(當(dāng)D,E不相同時)。

XOR繪圖模式實(shí)例

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); //設(shè)置XOR繪圖模式,顏色為紅色
    g.setColor(Color.green);
    g.fillRect(20, 20, 80, 40); //實(shí)際顏色是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); //實(shí)際顏色是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);
  }
}

相關(guān)文章

  • Spring 事務(wù)事件監(jiān)控及實(shí)現(xiàn)原理解析

    Spring 事務(wù)事件監(jiān)控及實(shí)現(xiàn)原理解析

    本文首先會使用實(shí)例進(jìn)行講解Spring事務(wù)事件是如何使用的,然后會講解這種使用方式的實(shí)現(xiàn)原理。感興趣的朋友跟隨小編一起看看吧
    2018-09-09
  • Java 梳理總結(jié)關(guān)于static關(guān)鍵字常見問題

    Java 梳理總結(jié)關(guān)于static關(guān)鍵字常見問題

    static關(guān)鍵字基本概念我們可以一句話來概括:方便在沒有創(chuàng)建對象的情況下來進(jìn)行調(diào)用。也就是說:被static關(guān)鍵字修飾的不需要創(chuàng)建對象去調(diào)用,直接根據(jù)類名就可以去訪問,讓我們來了解一下你可能還不知道情況
    2022-04-04
  • Spring中的ClassPathXmlApplicationContext源碼詳解

    Spring中的ClassPathXmlApplicationContext源碼詳解

    這篇文章主要介紹了Spring中的ClassPathXmlApplicationContext源碼詳解,ApplicationContext的主要實(shí)現(xiàn)類是ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,前者默認(rèn)從類路徑加載配置文件,后者默認(rèn)從文件系統(tǒng)中裝載配置文件,需要的朋友可以參考下
    2023-12-12
  • SpringBoot?@GroupSequenceProvider注解實(shí)現(xiàn)bean多屬性聯(lián)合校驗(yàn)的示例代碼

    SpringBoot?@GroupSequenceProvider注解實(shí)現(xiàn)bean多屬性聯(lián)合校驗(yàn)的示例代碼

    這篇文章主要介紹了SpringBoot?@GroupSequenceProvider注解實(shí)現(xiàn)bean多屬性聯(lián)合校驗(yàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Java?OpenCV圖像處理之自定義圖像濾波算子

    Java?OpenCV圖像處理之自定義圖像濾波算子

    這篇文章主要為大家介紹了如何利用Java?OpenCV實(shí)現(xiàn)自定義圖像濾波(降噪)?算子,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編學(xué)習(xí)一下
    2022-02-02
  • JAVA為什么要使用封裝及如何封裝經(jīng)典實(shí)例

    JAVA為什么要使用封裝及如何封裝經(jīng)典實(shí)例

    這篇文章主要給大家介紹了關(guān)于JAVA為什么要使用封裝及如何封裝的相關(guān)資料,封裝就是將屬性私有化,提供公有的方法訪問私有屬性,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • mybatis插件優(yōu)雅實(shí)現(xiàn)字段加密的示例代碼

    mybatis插件優(yōu)雅實(shí)現(xiàn)字段加密的示例代碼

    在很多時候,我們都需要字段加密,比如郵箱,密碼,電話號碼等,本文主要介紹了mybatis插件優(yōu)雅實(shí)現(xiàn)字段加密的示例代碼,感興趣的可以了解一下
    2023-11-11
  • 使用迭代器Iterator遍歷Collection問題

    使用迭代器Iterator遍歷Collection問題

    這篇文章主要介紹了使用迭代器Iterator遍歷Collection問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 使用Java注解模擬spring ioc容器過程解析

    使用Java注解模擬spring ioc容器過程解析

    這篇文章主要介紹了使用Java注解模擬spring ioc容器過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • springboot多文件上傳代碼實(shí)例及解析

    springboot多文件上傳代碼實(shí)例及解析

    這篇文章主要介紹了springboot多文件上傳代碼實(shí)例及解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評論