我必須在java中繪製精確的拱形。我使用Graphics2D.fillArc()的currenlty。問題是它只接受整數,而且曲線不準確,我不能使弧度順利增加。有沒有人知道這個解決方法?圖形拱不準確
Q
圖形拱不準確
1
A
回答
3
這是我的SSCCE使用Arc2D。
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Arc2D;
import javax.swing.*;
@SuppressWarnings("serial")
public class ChangingArcs extends JPanel {
private static final Color ARC_FILL_COLOR = Color.RED;
private static final int TIMER_DELAY = 20;
private static final int ARC_X = 100;
private static final int ARC_Y = 100;
private static final int ARC_W = 500;
private static final int ARC_H = 500;
protected static final double DELTA_EXTEND = 0.5;
private Arc2D arc;
private double extend = 0;
public ChangingArcs() {
new Timer(TIMER_DELAY, new ActionListener() {
public void actionPerformed(ActionEvent e) {
extend += DELTA_EXTEND;
extend %= 360;
double start = -extend/2;
arc = new Arc2D.Double(ARC_X, ARC_Y, ARC_W, ARC_H, start, extend, Arc2D.PIE);
repaint();
}
}).start();
}
public Dimension getPreferredSize() {
return new Dimension(ARC_W + 2 * ARC_X, ARC_H + 2 * ARC_Y);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
if (arc != null) {
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setColor(ARC_FILL_COLOR);
g2.fill(arc);
}
}
private static void createAndShowUI() {
JFrame frame = new JFrame("ChangingArcs");
frame.getContentPane().add(new ChangingArcs());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
createAndShowUI();
}
});
}
}
+0
你肯定有很多時間在你的手上lol – 2011-06-04 13:36:50
+0
@stas:我以前沒有使用過Arc2D,所以做這個學習練習。 – 2011-06-04 13:45:03
+0
@HFOE:很好的例子。如果顏色是黃色的,它會看起來像一個PacMan。 ;) – 2011-06-04 13:52:40
相關問題
- 1. 在Python中的拱形關係圖
- 2. 使用高圖表的拱形正方形圖表
- 3. Javascript帆布拱形跳躍
- 4. 海底小提琴圖形中的內部箱形圖不準確
- 5. 梯形積分不夠準確Clojure中
- 6. 快訊:位圖不準確
- 7. 使用Gnuplot進行3D映射的圖形不準確
- 8. 啓用拱形:SSE2使程序變慢
- 9. SSH隧道進入拱形框
- 10. AlarmMamanger不準確
- 11. NSTimer不準確?
- 12. thumbnailImageAtTime不準確
- 13. sizeWithFont:constrainedToSize:lineBreakMode:不準確?
- 14. GMSCameraPosition不準確
- 15. pygame.Sound.get_num_channels不準確
- 16. Pytesser不準確
- 17. datetime.now()不準確
- 18. DispatchQueue.main.asyncAfter不準確
- 19. CountDownTimer不準確
- 20. 圖釘準確性
- 21. 響應式CSS框/矩形頂部拱形和輪廓
- 22. .NET條形圖不能正確繪圖
- 23. IE不對準的圖像正確
- 24. Python OpenCV圖像插值不準確
- 25. TFS 2013:燃盡圖表不準確
- 26. 谷歌地圖邊界不準確
- 27. Java標準庫 - 圖形?
- 28. 爲圖形準備數據
- 29. 標準化條形圖
- 30. gpu的非圖形基準
我認爲最好的幫助,我們應該看到什麼不適合你,最好的方式是如果你可以創建併發佈一個編輯你的問題的小型可編譯和可運行的程序我們可以測試和修改,直接爲我們顯示你的問題,[SSCCE](http://sscce.org)。祝你好運! – 2011-06-04 13:07:12
另外,你有沒有看過Arc2D.Double類的弧線? – 2011-06-04 13:09:56
是的,我只是在那2分鐘前實施它。不過謝謝。把答案放在答案中,並把它當作別人的正確答案。 – 2011-06-04 13:12:45