<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
規則幾何圖形問題求解的程式是對根據輸入規則幾何圖形的一些特定的引數來實現對規則幾何圖形的面積和周長求解,以及根據輸入的引數對對他們進行繪製相應的圖形。
在程式中通過規則幾何的型別來輸入相應的引數有程式得到相應的解和圖形。這從而達到了對圖形的計算便利計算和直觀的求出圖形,從而幫助計算人員擁有更高的計算效率。
關鍵字:Java,swing,規則幾何圖形,檔案操作
本程式開發使用的IDE是idea!
1.程式採用檔案流操作將資料儲存到.txt檔案中,檔案的路徑是d:\xxx.txt。
2.檔案中儲存了基本的資料,包括輸入的規則幾何圖形的長寬高等資料,還包括計算得到的面積周長等資料!例如:
在程式中,可以實現已經新增的幾何圖形的面積和周長的求解,繪製它們相應的圖形和改變其形狀,線條的粗細和顏色。根據提示,我們可以輸入相關特徵的引數去求解除它們的面積、周長以及改變它們的引數,也可以根據提示去改變各邊的線條的粗細和顏色。
在規則幾何問題求解中系統主要有Main程式、Triangleplay程式、 Rectangleplay程式、Squareplay程式、Circleplay程式、Rhombusplay程式、Trapezoidplay程式、Trapezoidequilateral程式和Trapezoidright程式。
import java.io.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.text.*; public class Circleplay { public static void main(String args[]){ WindowCircle circleplay = new WindowCircle(); circleplay.setTitle("幾何圖形計算"); circleplay.setSize(500,300); circleplay.setLocation(500,250); } } class WindowCircle extends JFrame { Circle circle; // 資料物件 JTextField textA, textB, textC; // 資料物件的檢視 JTextArea showArea; // 資料物件的檢視 JButton controlButton1; // 控制器物件 JButton controlButton2; WindowCircle() { init(); setVisible(true); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } void init() { circle = new Circle(); textA = new JTextField(5); textB = new JTextField(5); showArea = new JTextArea(); controlButton1 = new JButton("計算"); controlButton2 = new JButton("退出"); JPanel pNorth = new JPanel(); JPanel pNorth1 = new JPanel(); pNorth.add(new JLabel("半徑")); pNorth.add(textA); pNorth.add(controlButton1); pNorth.add(controlButton2); pNorth.setLocation(250,250); pNorth1.add(new JLabel("圖形線條粗細")); String[] s1 = new String[]{"1","2","3","4","5","6","7","8","9"}; final JComboBox<String> comboBox1 = new JComboBox<String>(s1); pNorth1.add(comboBox1); pNorth1.add(new JLabel("圖形線條顏色")); String[] s2 = new String[]{"黑色","紅色","灰色","藍色","黃色","綠色","紫色"}; final JComboBox<String> comboBox2 = new JComboBox<String>(s2); pNorth1.add(comboBox2); add(pNorth, BorderLayout.NORTH); pNorth1.setPreferredSize(new Dimension(90,150)); add(pNorth1, BorderLayout.WEST); add(new JScrollPane(showArea), BorderLayout.CENTER); controlButton1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ try { double a = Double.parseDouble(textA.getText().trim()); // circle.setA(a); // 更新資料 circle.paint(); String area1 = circle.getlength(); String area2 = circle.getArea(); showArea.append("半徑為"+a+"的圓"+" "+"周長為:" +area1+" "+"面積為:"+area2+"n"); } catch (Exception ex) { showArea.append("n" + ex + "n"); } }}); controlButton2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ dispose(); }}); comboBox1.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { circle.Line(comboBox1.getSelectedIndex()+1); circle.paint(); } }}); comboBox2.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { circle.Colour(comboBox2.getSelectedIndex()+1); circle.paint(); } }}); }} class Circle { FileWriter dout; double sideA, sideB, area,p; int line = 1,colournumber = 1; public void setA(double a) { sideA = a; } public String getArea() { area = 3.14*sideA*sideA; return String.valueOf(area); // Double.toString(area) } public String getlength() { p = 3.14 * sideA; return String.valueOf(p); } public void Line(int line) { this.line = line; } public void Colour(int colournumber) { this.colournumber = colournumber; } public void paint(){ try{ dout = new FileWriter("d:\Circle.txt"); }catch(IOException e){} JFrame jFrame = new JFrame("圓的圖形"); // 建立畫板 JPanel jpanel = new JPanel() { public void paint(Graphics graphics) { // 必須先呼叫父類別的paint方法 super.paint(graphics); Graphics2D g=(Graphics2D) graphics.create(); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); if(colournumber == 1) g.setColor(Color.BLACK); else if(colournumber == 2) g.setColor(Color.RED); else if(colournumber == 3) g.setColor(Color.GRAY); else if(colournumber == 4) g.setColor(Color.BLUE); else if(colournumber == 5) g.setColor(Color.YELLOW); else if(colournumber == 6) g.setColor(Color.GREEN); else if(colournumber == 7) g.setColor(Color.magenta); if(line == 1){ try{ dout.write("圓形線條粗細為"); dout.write(String.valueOf(line)); dout.write(" rn"); }catch(IOException a){} } if(line == 2){ try{ dout.write("圓形線條粗細為"); dout.write(String.valueOf(line)); dout.write(" rn"); }catch(IOException a){} } if(line == 3){ try{ dout.write("圓形線條粗細為"); dout.write(String.valueOf(line)); dout.write(" rn"); }catch(IOException a){} } if(line == 4){ try{ dout.write("圓形線條粗細為"); dout.write(String.valueOf(line)); dout.write(" rn"); }catch(IOException a){} } if(line == 5){ try{ dout.write("長方形線條粗細為"); dout.write(String.valueOf(line)); dout.write(" rn"); }catch(IOException a){} } if(line == 6){ try{ dout.write("圓形線條粗細為"); dout.write(String.valueOf(line)); dout.write(" rn"); }catch(IOException a){} } if(line == 7){ try{ dout.write("圓形線條粗細為"); dout.write(String.valueOf(line)); dout.write(" rn"); }catch(IOException a){} } if(line == 8){ try{ dout.write("圓形線條粗細為"); dout.write(String.valueOf(line)); dout.write(" rn"); }catch(IOException a){} } if(line == 9){ try{ dout.write("圓形線條粗細為"); dout.write(String.valueOf(line)); dout.write(" rn"); }catch(IOException a){} } if(colournumber == 1) { g.setColor(Color.BLACK); try{ dout.write("圓形顏色為"); dout.write("黑色"); dout.write(" rn"); }catch(IOException e){} } else if(colournumber == 2) { g.setColor(Color.RED); try{ dout.write("圓形顏色為"); dout.write("紅色"); dout.write(" rn"); }catch(IOException e){} } else if(colournumber == 3) { g.setColor(Color.GRAY); try{ dout.write("圓形顏色為"); dout.write("灰色"); dout.write(" rn"); }catch(IOException e){} } else if(colournumber == 4) { g.setColor(Color.BLUE); try{ dout.write("圓形顏色為"); dout.write("藍色"); dout.write(" rn"); }catch(IOException e){} } else if(colournumber == 5) { g.setColor(Color.YELLOW); try{ dout.write("圓形顏色為"); dout.write("黃色"); dout.write(" rn"); }catch(IOException e){} } else if(colournumber == 6) { g.setColor(Color.GREEN); try{ dout.write("圓形顏色為"); dout.write("綠色"); dout.write(" rn"); }catch(IOException e){} } else if(colournumber == 7) { g.setColor(Color.magenta); try{ dout.write("圓形顏色為"); dout.write("紫色"); dout.write(" rn"); }catch(IOException e){} } Stroke stroke=new BasicStroke(line); g.setStroke(stroke); DecimalFormat df = new DecimalFormat("######0"); String str1 = df.format(sideA); int a = Integer.parseInt(str1); g.drawOval(100, 50, a*10,a*10); try{ dout.write("圓形半徑為"); dout.write(String.valueOf(a)); dout.write(" rn"); dout.write("圓形周長為"); dout.write(String.valueOf(p)); dout.write(" rn"); dout.write("圓形面積為"); dout.write(String.valueOf(area)); dout.write(" rn"); dout.close(); }catch(IOException exa){} } }; jFrame.add(jpanel); // 設定畫框大小(寬度,高度),預設都為0 jFrame.setSize(300, 300); // 將畫框展示出來。true設定可見,預設為false隱藏 jFrame.setVisible(true); jFrame.setLocation(1000,250); } }
以下是專案結構的展示:
規則幾何圖形求解根據圖形的某些特徵設定輸入引數,根據這些引數來計算相應圖形的面積和周長。在繪製圖形方面,是根據所輸入的引數來確定座標,再連線座標形成的圖形。在改變圖形方面,用繪圖的類去改變圖形。
這個程式適合在新手學習完Java基礎知識以後練習,可以加深對Java程式設計的理解,同時對Java流的操作這一個抽象的概念有了更加深入的理解,學習完GUI技術不僅提升了程式設計興趣,同時為Java下一階段的學習奠定了基礎。
以上就是Java實現規則幾何圖形的繪製與周長面積計算詳解的詳細內容,更多關於Java幾何圖形繪製 計算的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45