一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java的繪圖模式使用淺析

Java的繪圖模式使用淺析

2020-01-08 14:45goldensun JAVA教程

這篇文章主要介紹了Java的繪圖模式使用淺析,以一個小例子大概列舉了XOR模式下能干的一些事情,需要的朋友可以參考下

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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);
  }
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 被高跟鞋调教丨vk | 久久久久久久99精品免费观看 | 黑人同学征服教师麻麻 | 国内永久第一免费福利视频 | 白发在线视频播放观看免费 | 欧美成人在线影院 | 久久精品18 | 免费国产福利 | 纲手被鸣人插 | juliaann丝袜精品系列 | 久久机热视频 这里只有精品首页 | 九九九九在线视频播放 | a4yy欧美一区二区三区 | 亚洲第成色999久久网站 | 天堂资源在线8 | 丰满的闺蜜2中文字幕 | 国产成人91高清精品免费 | 天天摸天天碰色综合网 | 亚洲成人影院在线观看 | yellow在线 | 青草久久网 | 欧美 亚洲 综合 卡通 另类 区 | 国产欧美日韩图片一区二区 | 国产尤物视频 | 99热这里有免费国产精品 | 成人区精品一区二区毛片不卡 | 精品在线91 | 色综合视频在线 | 欧美特黄特色aaa大片免费看 | 午夜欧美精品久久久久久久 | 国产免费美女视频 | 亚洲欧美日韩中文高清一 | 性xx色3d动画xx无尽 | 小舞丝袜调教喷水沦为肉奴 | 国产精品日韩欧美一区二区 | 处女私拍| 67id人成观看免费 | 欧美老肥妇bbbw | 日本免费精品 | 四大美女思春艳史片 | 国产精品一区二区不卡的视频 |