日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
仿射變換java代碼的簡單介紹

出現(xiàn)'class'or 'interface'expected

/*你的代碼編譯不能通過,我用eclipse改正了一下,這回行了~代碼如下*/

成都創(chuàng)新互聯(lián)是一家專業(yè)提供玉樹企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、網(wǎng)站制作H5建站、小程序制作等業(yè)務(wù)。10年已為玉樹眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

import java.awt.*;

import java.awt.geom.*;

import javax.swing.*;

public class c9_10 extends JApplet {

/**

*

*/

private static final long serialVersionUID = 1L;

public void paint(Graphics g) {

Rectangle2D.Double rec1 = new Rectangle2D.Double(0, 0, 100, 100);

Rectangle2D.Double rec2 = new Rectangle2D.Double(50, 0, 100, 100); //你的代碼這個地方rec2沒有類型

Rectangle2D.Double rec3 = new Rectangle2D.Double(125, 75, 100, 100); //你的代碼這個地方rec3沒有類型

Rectangle2D.Double rec4 = new Rectangle2D.Double(50, 125, 100, 100); //你的代碼這個地方rec4沒有類型

Rectangle2D.Double rec5 = new Rectangle2D.Double(-25, 75, 100, 100); //你的代碼這個地方rec5沒有類型

Graphics2D g2 = (Graphics2D) g;

g2.setPaint(Color.red);// 將用戶坐標(biāo)系的原點(0,0)平移到屏幕坐標(biāo)系x為100,y為50像素點的位置

g2.translate(100, 50);// radians=degree * pie / 180

g2.rotate((45 * java.lang.Math.PI) / 180); // 將圖形旋轉(zhuǎn)45

g2.fill(rec1); // 畫左上角坐標(biāo)為(0,0),長與寬為100的填充矩形,創(chuàng)建仿射變換對象,設(shè)置幾何圖形變換為默認(rèn)方式

g2.setTransform(new AffineTransform());// 創(chuàng)建一個AlphaCcomposite類的復(fù)合對象ac,規(guī)則為50%的透明度

AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER,

0.5f);

g2.setComposite(ac); // 設(shè)定重疊對象的顏色復(fù)合方式

g2.setPaint(Color.green);

g2.fill(rec2);

g2.setPaint(Color.blue);

g2.fill(rec3);

g2.setPaint(Color.yellow);

g2.fill(rec4);

g2.setPaint(Color.pink);

g2.fill(rec5);

}

}

//建議使用eclipse編輯,出錯機會少~~

利用java實現(xiàn)圖片翻轉(zhuǎn)的代碼

重載渲染控件的paintComponent(Graphics g)方法.

設(shè)你當(dāng)前圖像實例為img,已初始化,需要旋轉(zhuǎn)的角度為ang

public void paintComponent(Graphics g){

super.paintCompoent(g);

Graphics2D g2d = (Graphics2D)g;

g2d.rotate(-angle);

g2d.drawImage(img,0,0,this.getWidth(),this.getHeight(),null);

}

Graphics,Graphics2D 類中有對當(dāng)前描繪環(huán)境進(jìn)行仿射變換的方法,包括translate,scale,rotate,也可以直接設(shè)置仿射變換矩陣,利用這點就可以根據(jù)所需要的實現(xiàn)方式來進(jìn)行描繪.

幫我修改一下java的程序

public class RotateImageDemo extends JFrame{

JSlider jSlider = new JSlider(JSlider.HORIZONTAL,0,180,0); //設(shè)定旋轉(zhuǎn)角度

ImagePane imagePane=new ImagePane(); //繪制圖像的面板

public RotateImageDemo(){

super("圖像旋轉(zhuǎn)演示"); //調(diào)用父類構(gòu)造函數(shù)

jSlider.setPaintTicks(true); //繪制標(biāo)志位

jSlider.setMajorTickSpacing(45); //設(shè)置標(biāo)志尺寸

jSlider.setMinorTickSpacing(5);

jSlider.setPaintLabels(true); //繪制出數(shù)字

jSlider.setBorder(new javax.swing.border.TitledBorder(BorderFactory.createEmptyBorder(), "圖像的旋轉(zhuǎn)度")); //設(shè)置邊框

jSlider.addChangeListener(new ChangeListener() { //滑動條jSlider事件處理

public void stateChanged(ChangeEvent ce) {

int value=((JSlider) ce.getSource()).getValue(); //獲取設(shè)置值

double angle =(float)value/180*Math.PI ; //得到旋轉(zhuǎn)角度(弧度制)

imagePane.ratoteImage((float)angle); //旋轉(zhuǎn)圖像

}

});

Container container=getContentPane(); //得到窗口容器

imagePane.loadImage("image0.jpg"); //裝載圖片

container.add(imagePane,BorderLayout.CENTER); //增加組件到容器上

container.add(jSlider,BorderLayout.SOUTH);

setSize(250,250); //設(shè)置窗口尺寸

setVisible(true); //設(shè)置窗口可視

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關(guān)閉窗口時退出程序

}

public static void main(String[] args){

new RotateImageDemo();

}

class ImagePane extends JPanel {

Image image;

BufferedImage bufImage; //用于顯示的緩沖區(qū)圖像

BufferedImage originalBufImage; //原始緩沖區(qū)圖像

Graphics2D bufImageG; //緩沖區(qū)圖像的圖形環(huán)境

public void loadImage(String fileName) {

image = this.getToolkit().getImage(fileName); //取得圖像

MediaTracker mt = new MediaTracker(this); //實例化媒體加載器

mt.addImage(image, 0); //增加圖像到加載器中

try {

mt.waitForAll(); //等待圖片加載

} catch (Exception ex) {

ex.printStackTrace(); //輸出出錯信息

}

originalBufImage = new BufferedImage(image.getWidth(this),image.getHeight(this),BufferedImage.TYPE_INT_ARGB); //創(chuàng)建原始緩沖區(qū)圖像

bufImage = originalBufImage;

bufImageG = bufImage.createGraphics(); //創(chuàng)建bufImage的圖形環(huán)境

bufImageG.drawImage(image, 0, 0, this); //傳輸源圖像數(shù)據(jù)到緩沖區(qū)圖像中

repaint(); //重繪組件

}

//過濾圖像

public void ratoteImage(double angle) {

if (bufImage == null)

return; //如果bufImage為空則直接返回

BufferedImage filteredBufImage =new BufferedImage(image.getWidth(this) ,image.getHeight(this),BufferedImage.TYPE_INT_ARGB); //過濾后的圖像

AffineTransform transform = new AffineTransform(); //仿射變換對象

transform.rotate(angle,125,75); //旋轉(zhuǎn)圖像

AffineTransformOp imageOp = new AffineTransformOp(transform, null);//創(chuàng)建仿射變換操作對象

imageOp.filter(originalBufImage, filteredBufImage);//過濾圖像,目標(biāo)圖像在filteredBufImage

bufImage = filteredBufImage; //讓用于顯示的緩沖區(qū)圖像指向過濾后的圖像

repaint(); //重繪組件

}

//重載容器的paintComponent()方法

public void paint(Graphics g) {

super.paintComponent(g);

if (bufImage != null) {

Graphics2D g2 = (Graphics2D) g;

g2.drawImage(bufImage,0,0,this); //繪制圖片

}

}

}

}


本文題目:仿射變換java代碼的簡單介紹
網(wǎng)頁網(wǎng)址:http://www.dlmjj.cn/article/phgioj.html