-
大小: 94KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-09
- 語(yǔ)言: Java
- 標(biāo)簽:
資源簡(jiǎn)介
Eclipse平臺(tái)JAVA實(shí)現(xiàn)
1. 實(shí)驗(yàn)內(nèi)容
用基本增量算法和Bresenham算法畫直線
2.實(shí)驗(yàn)?zāi)康?
1)理解在顯示器上畫圖與在紙上畫圖的本質(zhì)區(qū)別;
2)掌握直線的光柵掃描轉(zhuǎn)換過(guò)程;
3)掌握不同算法繪制直線的思路和優(yōu)缺點(diǎn)。
3. 實(shí)驗(yàn)要求
1)將像素網(wǎng)格表現(xiàn)出來(lái),建立網(wǎng)格坐標(biāo)系;
2)用橡皮筋的形式輸入?yún)?shù);
3)鼠標(biāo)移動(dòng)時(shí),顯示鼠標(biāo)當(dāng)前位置;
4)顯示判別式的計(jì)算過(guò)程和下一點(diǎn)的選擇策略;
5)記錄生成點(diǎn)的坐標(biāo),建議用表的形式;
6)圖形生成過(guò)程可以重復(fù)進(jìn)行。
1. 實(shí)驗(yàn)內(nèi)容
用正負(fù)法和Bresenham算法畫圓弧
2.實(shí)驗(yàn)?zāi)康?
1)掌握?qǐng)A及圓弧的光柵掃描轉(zhuǎn)換過(guò)程;
2)掌握不同算法繪制圓弧的技巧和優(yōu)缺點(diǎn)。
3. 實(shí)驗(yàn)要求
1)將像素網(wǎng)格表現(xiàn)出來(lái),建立網(wǎng)格坐標(biāo)系;
2)用橡皮筋的形式輸入?yún)?shù);
3)鼠標(biāo)移動(dòng)時(shí),顯示鼠標(biāo)當(dāng)前位置;
4)顯示判別式的計(jì)算過(guò)程和下一點(diǎn)的選擇策略;
5)記錄生成點(diǎn)的坐標(biāo),建議用表的形式;
6)圖形生成過(guò)程可以重復(fù)進(jìn)行。
1. 實(shí)驗(yàn)內(nèi)容
用Cohen-SutherLand算法和liang _barsky算法進(jìn)行線段裁剪
2.實(shí)驗(yàn)?zāi)康?
1)理解裁剪的相關(guān)概念
2)掌握直線段的一般裁剪過(guò)程;
3)理解并掌握Cohen-SutherLand 算法的編碼思想;
4)理解并掌握Liang_Barsky算法的參數(shù)化裁剪思想;
3. 實(shí)驗(yàn)要求
1)將像素網(wǎng)格表現(xiàn)出來(lái),建立網(wǎng)格坐標(biāo)系;
2)用橡皮筋的形式輸入剪裁線段和裁剪窗口;
3)鼠標(biāo)移動(dòng)時(shí),顯示鼠標(biāo)當(dāng)前位置;
4)對(duì)于線段裁剪,線段被窗口的四條邊裁剪的過(guò)程要顯示出來(lái);
6)裁剪過(guò)程可以重復(fù)進(jìn)行。
1. 實(shí)驗(yàn)內(nèi)容
用Sutherland-Hodgman算法進(jìn)行多邊形裁剪
2.實(shí)驗(yàn)?zāi)康?
1)理解多邊形裁剪與直線段裁剪的區(qū)別;
2)掌握多邊形的裁剪過(guò)程;
3)理解并掌握Sutherland-Hodgman算法的裁剪思想。
3. 實(shí)驗(yàn)要求
1)將像素網(wǎng)格表現(xiàn)出來(lái),建立網(wǎng)格坐標(biāo)系;
2)用橡皮筋的形式輸入剪裁多邊形和裁剪窗口;
3)鼠標(biāo)移動(dòng)時(shí),顯示鼠標(biāo)當(dāng)前位置;
4)多邊形被窗口的四條邊裁剪的過(guò)程以及多邊形頂點(diǎn)增刪的過(guò)程要顯示出來(lái);
5)裁剪過(guò)程可以重復(fù)進(jìn)行。

代碼片段和文件信息
package?shiyan;
import?????javax.swing.*;
import?java.awt.BorderLayout;
import?java.awt.Button;
import?java.awt.Color;
import?????java.awt.Graphics;
import?java.awt.Graphics2D;
import?java.awt.GridLayout;
import?java.awt.Label;
import?java.awt.Panel;
import?java.awt.TextArea;
import?java.awt.TextField;
import?????java.applet.*;
import?????java.awt.*;
import?????java.awt.event.*;
import?????java.util.Date;
import?????java.text.*;
import?java.io.*;?
import?java.util.ArrayList;
import?javax.swing.JOptionPane;
public?class?Shiyan?extends?Jframe{????????????????
?????????????JMenuBar?mb;
?????????JMenu?m_gongNm_help;????//菜單
?????????JMenuItem?mi_Linemi_Roundmi_LineCutmi_LinesCutmi_exit;???//菜單選項(xiàng) ????????
?????????JMenuItem?mi_aboutmi_help; ???????????????
?????????Date?now?=?new?Date();?
?????????DateFormat?d?=?DateFormat.getDateInstance();
????? public?RoundWindow?RB;
????? public?SetPixe_1?Set1;
????? public?SetPixe_2?Set2;
????? public?SetPixe_3?Set3;
????? public?SetPixe_4?Set4;
?????
??//構(gòu)造函數(shù)
?public?Shiyan(){
???creatComponents();?????//調(diào)用方法創(chuàng)建窗體組
???layoutComponents();???//調(diào)用方法設(shè)置窗體布?
???registerEvent();??????//調(diào)用方法添加事件處理
???setSize(800700);????//設(shè)置窗口大小
???settitle(“圖形學(xué)實(shí)驗(yàn)“);?//設(shè)置窗口標(biāo)題??
???
???Icon?Piture?=?new?ImageIcon(?“piture.jpg“?);
???JButton?PButton;
???PButton?=?new?JButton(Piture);
???add(PButton);?
???
???setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);?//關(guān)閉窗口時(shí)什么都不做???
???addWindowListener(new?WindowAdapter(){?//關(guān)閉窗口時(shí)執(zhí)行
?? ?public?void?windowClosing(WindowEvent???e)???{???
?? ??int???option=JOptionPane.showConfirmDialog(null“是否完全退出該系統(tǒng)?“
?? ??????“系統(tǒng)提示“JOptionPane.YES_NO_CANCEL_OPTIONJOptionPane.QUESTION_MESSAGE);???
?? ??if(option==JOptionPane.YES_OPTION)???
?? ?????System.exit(0);???
?? ?}});?
???
??}??
?
//創(chuàng)造窗體組件
private??void??creatComponents(){
?mb=new?JMenuBar();
?m_gongN=new?JMenu(“功能“);
?m_help=new?JMenu(“幫助“);
?mi_Line=new?JMenuItem(“畫直線“);
?mi_Round=new?JMenuItem(“畫圓“);
?mi_LineCut=new?JMenuItem(“直線裁剪“);
?mi_LinesCut=new?JMenuItem(“多邊形裁剪“);
?mi_exit=new?JMenuItem(“退出“);
?mi_about=new?JMenuItem(“關(guān)于我們“);
?mi_help=new?JMenuItem(“友情鏈接“); ? ?????
}
//窗體布局
private?void???layoutComponents(){???????
?????m_gongN.add(mi_Line);?????//添加菜單項(xiàng)
?????m_gongN.add(mi_Round);
?????m_gongN.add(mi_LineCut);
?????m_gongN.add(mi_LinesCut);
?????m_gongN.add(mi_exit);? ???
?????m_help.add(mi_help);
?????m_help.add(mi_about); ??????
?????????mb.add(m_gongN);
????? ?mb.add(m_help);??????
?????????setJMenuBar(mb);????//添加菜單條
?????????//設(shè)置快捷鍵
?????????mi_Line.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_OInputEvent.CTRL_MASK));
?????????mi_Round.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_SInputEvent.CTRL_MASK));
?????????mi_LineCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_XInputEvent.CTRL_MASK));
?????????mi_LinesCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_YInputEvent.CTRL_MASK)
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????232??2009-04-01?19:20??圖形學(xué)\.classpath
?????文件????????385??2009-04-01?19:20??圖形學(xué)\.project
?????文件????????891??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$1.class
?????文件???????1506??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$AboutActionEventHander.class
?????文件???????1062??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$ExitActionEventHander.class
?????文件???????1355??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$HelpActionEventHander.class
?????文件????????827??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$LineActionEventHander.class
?????文件????????817??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$Linecut.class
?????文件????????833??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$LineCutActionEventHander.class
?????文件????????845??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$LinesCutActionEventHander.class
?????文件????????832??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$LinesWindow.class
?????文件????????812??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$LineWindow.class
?????文件????????886??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$RoundActionEventHander.class
?????文件????????838??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$RoundWindow.class
?????文件???????1836??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_1$1.class
?????文件???????2629??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_1$2.class
?????文件???????1399??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_1$clenHander.class
?????文件???????4042??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_1$comdHander.class
?????文件???????6702??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_1.class
?????文件???????1527??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_2$1.class
?????文件???????2120??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_2$2.class
?????文件???????1869??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_2$clenHander.class
?????文件???????1473??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_2$comdHander.class
?????文件???????6642??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_2.class
?????文件???????2825??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_3$1.class
?????文件???????2139??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_3$2.class
?????文件???????1334??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_3$clenHander.class
?????文件???????1052??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_3$comdHander.class
?????文件???????6335??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_3.class
?????文件???????3751??2009-04-11?20:04??圖形學(xué)\bin\shiyan\Shiyan$SetPixe_4$1.class
............此處省略15個(gè)文件信息
評(píng)論
共有 條評(píng)論