gpt4 book ai didi

java - 在java中绘制极坐标图

转载 作者:行者123 更新时间:2023-12-01 16:38:33 25 4
gpt4 key购买 nike

有谁知道我如何开始在java中绘制极坐标图并在该图上绘制一些点?我的意思是圆和线,我希望用 swing 之类的东西来做到这一点,而不是使用像 Jfreechart 这样的任何库谢谢

最佳答案

您可能想查看Lissajous curves ;下面显示了 a = 5, b = 4 (5:4) 的示例。

附录:一旦您了解了如何在 xy 坐标中绘制点,那么您应该查看 converting between polar and Cartesian coordinates .

LissajousPanel

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);
}
});
}
}

关于java - 在java中绘制极坐标图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6694417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com