有谁知道我如何开始在java中绘制极坐标图并在该图上绘制一些点?我的意思是圆和线,我希望用 swing 之类的东西来做到这一点,而不是使用像 Jfreechart 这样的任何库
谢谢
您可能想看看利萨如曲线;的一个例子a = 5, b = 4 (5:4)
如下所示。
附录:一旦你了解了如何在xy坐标,那么你应该看看极坐标和笛卡尔坐标之间的转换.
![LissajousPanel](https://i.stack.imgur.com/w7N3q.png)
public class LissajousPanel extends JPanel {
private static final int SIZE = 400;
private GeneralPath path = new GeneralPath();
@Override
public Dimension getPreferredSize() {
return new Dimension(SIZE, SIZE);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
double dt = Math.PI / 180;
int w = getWidth() / 2;
int h = getHeight() / 2;
path.reset();
path.moveTo(w, h);
for (double t = 0; t < 2 * Math.PI; t += dt) {
double x = w * Math.sin(5 * t) + w;
double y = h * Math.sin(4 * t) + h;
path.lineTo(x, y);
}
g2d.setColor(Color.blue);
g2d.draw(path);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new LissajousPanel());
f.pack();
f.setVisible(true);
}
});
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)