我需要編寫一個繪製四面體(帶有四個三角形面的三維形狀)的程序。 我們必須要使用就怎麼做該類Graphics2D.Any想法S級的GeneralPath和方法平局,根據Swing中的用戶輸入繪製四面體
回答
我以前做過類似這樣的程序, 我已經創建了兩個數組調用baseX
和baseY
和設置 座標,然後添加兩個for循環來製作角點。 這種方式可以借鑑,甚至一個立方體以及
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import javax.swing.*;
public class Tetrahedron extends JFrame {
// constructor
public Tetrahedron()
{super("Tetrahedron");
setSize(275, 150);
setVisible(true); }
// draw tetrahedron
public void paint(Graphics g)
{
super.paint(g);
int baseX[] = { 110, 150, 50, 110 };
int baseY[] = { 90, 130, 130, 90 };
int x = 110, y = 40;
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.red);
GeneralPath tetrahedron = new GeneralPath();
tetrahedron.moveTo(baseX[ 0 ], baseY[ 0 ]);
for (int i = 1; i < 4; i++) {
tetrahedron.lineTo(x, y);
tetrahedron.moveTo(baseX[ i - 1 ], baseY[ i - 1 ]);
tetrahedron.lineTo(baseX[ i ], baseY[ i ]);
}tetrahedron.closePath(); g2d.draw(tetrahedron);
}
public static void main(String args[])
{Tetrahedron application = new Tetrahedron();
application.setDefaultCloseOperation(EXIT_ON_CLOSE); } }
從引用:JAVA如何第五版,由哈維Deitel公司編寫的程序,保羅·德特爾
不好的建議的好例子。不要像'JFrame'那樣覆蓋頂級容器容器的'paint',而是使用'JPanel'或其他東西,而不是重寫它的'paintComponent'方法。 'JFrame'不是雙重緩衝的,你可能會冒着在框架裝飾下繪畫的風險。你也應該從事件調度線程的上下文中創建你的用戶界面,以防止其他問題 – MadProgrammer
你似乎已經忘記從你的例子中刪除行號,你從哪裏複製過來的位置 – MadProgrammer
@MadProgrammer引用自JAVA如何編程第五版,由Harvey Deitel,Paul Deitel撰寫,我在幾個月前引用了 – AVI
- 1. 根據Java中的用戶輸入繪製一個圓圈
- 2. 在MATLAB中繪製四面體R2011a
- 3. 在OpenTK中繪製一個四面體
- 4. 根據偏好繪製用戶界面
- 5. 根據輸入時間繪製圓弧
- 6. 根據用戶輸入製作形狀
- 7. 根據用戶輸入限制字數
- 8. MATLAB根據用戶輸入
- 9. Shiny + ggplot2:根據用戶輸入在一個圖形中繪製多條線條
- 10. 用OpenGL繪製一個帶有四個三角形的四面體
- 11. gnuplot根據數據文件的第四列繪製顏色
- 12. (Laravel)動態依賴注入的界面,根據用戶輸入
- 13. 根據用戶輸入在輸入字段中顯示數據
- 14. 根據用戶輸入通過AJAX請求重繪google圖表
- 15. CDI根據用戶輸入注入@PersistenceContext
- 16. Java Swing - 在面板中繪製圖形
- 17. MySQL的信息輸入到表中根據用戶輸入
- 18. Matlab繪圖四面體和三角形
- 19. 根據用戶名和密碼輸入訪問相應的asp頁面在登錄控制中輸入
- 20. 根據用戶的輸入製作JSON文件
- 21. 根據用戶輸入控制要驗證的字段
- 22. MATLAB:繪製積分使用四/四
- 23. 根據用戶輸入調整Unicode
- 24. 根據用戶輸入確認日期
- 25. 根據用戶輸入加載腳本
- 26. 根據用戶輸入創建條目
- 27. 根據用戶輸入按行回顯
- 28. 根據用戶輸入選擇子類?
- 29. 根據用戶輸入更改屬性
- 30. 根據用戶輸入創建文件
可以請你描述多一點點? – manetsus
這是要求別人做功課嗎?請提供有關您所嘗試的內容以及您迄今爲止所諮詢的資源的信息。 – silverbeak
到目前爲止你做過什麼嗎? –