資源簡介
Eclipse平臺JAVA實現
1. 實驗內容
用基本增量算法和Bresenham算法畫直線
2.實驗目的
1)理解在顯示器上畫圖與在紙上畫圖的本質區別;
2)掌握直線的光柵掃描轉換過程;
3)掌握不同算法繪制直線的思路和優缺點。
3. 實驗要求
1)將像素網格表現出來,建立網格坐標系;
2)用橡皮筋的形式輸入參數;
3)鼠標移動時,顯示鼠標當前位置;
4)顯示判別式的計算過程和下一點的選擇策略;
5)記錄生成點的坐標,建議用表的形式;
6)圖形生成過程可以重復進行。
1. 實驗內容
用正負法和Bresenham算法畫圓弧
2.實驗目的
1)掌握圓及圓弧的光柵掃描轉換過程;
2)掌握不同算法繪制圓弧的技巧和優缺點。
3. 實驗要求
1)將像素網格表現出來,建立網格坐標系;
2)用橡皮筋的形式輸入參數;
3)鼠標移動時,顯示鼠標當前位置;
4)顯示判別式的計算過程和下一點的選擇策略;
5)記錄生成點的坐標,建議用表的形式;
6)圖形生成過程可以重復進行。
1. 實驗內容
用Cohen-SutherLand算法和liang _barsky算法進行線段裁剪
2.實驗目的
1)理解裁剪的相關概念
2)掌握直線段的一般裁剪過程;
3)理解并掌握Cohen-SutherLand 算法的編碼思想;
4)理解并掌握Liang_Barsky算法的參數化裁剪思想;
3. 實驗要求
1)將像素網格表現出來,建立網格坐標系;
2)用橡皮筋的形式輸入剪裁線段和裁剪窗口;
3)鼠標移動時,顯示鼠標當前位置;
4)對于線段裁剪,線段被窗口的四條邊裁剪的過程要顯示出來;
6)裁剪過程可以重復進行。
1. 實驗內容
用Sutherland-Hodgman算法進行多邊形裁剪
2.實驗目的
1)理解多邊形裁剪與直線段裁剪的區別;
2)掌握多邊形的裁剪過程;
3)理解并掌握Sutherland-Hodgman算法的裁剪思想。
3. 實驗要求
1)將像素網格表現出來,建立網格坐標系;
2)用橡皮筋的形式輸入剪裁多邊形和裁剪窗口;
3)鼠標移動時,顯示鼠標當前位置;
4)多邊形被窗口的四條邊裁剪的過程以及多邊形頂點增刪的過程要顯示出來;
5)裁剪過程可以重復進行。

代碼片段和文件信息
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;???//菜單選項 ????????
?????????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;
?????
??//構造函數
?public?Shiyan(){
???creatComponents();?????//調用方法創建窗體組
???layoutComponents();???//調用方法設置窗體布?
???registerEvent();??????//調用方法添加事件處理
???setSize(800700);????//設置窗口大小
???settitle(“圖形學實驗“);?//設置窗口標題??
???
???Icon?Piture?=?new?ImageIcon(?“piture.jpg“?);
???JButton?PButton;
???PButton?=?new?JButton(Piture);
???add(PButton);?
???
???setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);?//關閉窗口時什么都不做???
???addWindowListener(new?WindowAdapter(){?//關閉窗口時執行
?? ?public?void?windowClosing(WindowEvent???e)???{???
?? ??int???option=JOptionPane.showConfirmDialog(null“是否完全退出該系統?“
?? ??????“系統提示“JOptionPane.YES_NO_CANCEL_OPTIONJOptionPane.QUESTION_MESSAGE);???
?? ??if(option==JOptionPane.YES_OPTION)???
?? ?????System.exit(0);???
?? ?}});?
???
??}??
?
//創造窗體組件
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(“關于我們“);
?mi_help=new?JMenuItem(“友情鏈接“); ? ?????
}
//窗體布局
private?void???layoutComponents(){???????
?????m_gongN.add(mi_Line);?????//添加菜單項
?????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);????//添加菜單條
?????????//設置快捷鍵
?????????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)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????232??2009-04-01?19:20??圖形學\.classpath
?????文件????????385??2009-04-01?19:20??圖形學\.project
?????文件????????891??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$1.class
?????文件???????1506??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$AboutActionEventHander.class
?????文件???????1062??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$ExitActionEventHander.class
?????文件???????1355??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$HelpActionEventHander.class
?????文件????????827??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$LineActionEventHander.class
?????文件????????817??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$Linecut.class
?????文件????????833??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$LineCutActionEventHander.class
?????文件????????845??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$LinesCutActionEventHander.class
?????文件????????832??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$LinesWindow.class
?????文件????????812??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$LineWindow.class
?????文件????????886??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$RoundActionEventHander.class
?????文件????????838??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$RoundWindow.class
?????文件???????1836??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_1$1.class
?????文件???????2629??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_1$2.class
?????文件???????1399??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_1$clenHander.class
?????文件???????4042??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_1$comdHander.class
?????文件???????6702??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_1.class
?????文件???????1527??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_2$1.class
?????文件???????2120??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_2$2.class
?????文件???????1869??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_2$clenHander.class
?????文件???????1473??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_2$comdHander.class
?????文件???????6642??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_2.class
?????文件???????2825??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_3$1.class
?????文件???????2139??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_3$2.class
?????文件???????1334??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_3$clenHander.class
?????文件???????1052??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_3$comdHander.class
?????文件???????6335??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_3.class
?????文件???????3751??2009-04-11?20:04??圖形學\bin\shiyan\Shiyan$SetPixe_4$1.class
............此處省略15個文件信息
評論
共有 條評論