国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java的繪圖模式使用淺析

2019-11-26 14:56:25
字體:
來源:轉載
供稿:網友

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

設背景色為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);  }}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麻城市| 长兴县| 黄石市| 永顺县| 比如县| 玉树县| 法库县| 古浪县| 南木林县| 洛隆县| 桃江县| 西吉县| 南和县| 岳池县| 安远县| 霍邱县| 鹿泉市| 庆云县| 历史| 合江县| 明溪县| 攀枝花市| 宽甸| 盘山县| 泾阳县| 承德县| 峨边| 正镶白旗| 云梦县| 苏尼特左旗| 周至县| 荥阳市| 庆云县| 抚远县| 凤城市| 利津县| 乌苏市| 厦门市| 婺源县| 富宁县| 格尔木市|