<legend id='cfxVJ'><style id='cfxVJ'><dir id='cfxVJ'><q id='cfxVJ'></q></dir></style></legend>

    <tfoot id='cfxVJ'></tfoot>

    1. <small id='cfxVJ'></small><noframes id='cfxVJ'>

        • <bdo id='cfxVJ'></bdo><ul id='cfxVJ'></ul>
        <i id='cfxVJ'><tr id='cfxVJ'><dt id='cfxVJ'><q id='cfxVJ'><span id='cfxVJ'><b id='cfxVJ'><form id='cfxVJ'><ins id='cfxVJ'></ins><ul id='cfxVJ'></ul><sub id='cfxVJ'></sub></form><legend id='cfxVJ'></legend><bdo id='cfxVJ'><pre id='cfxVJ'><center id='cfxVJ'></center></pre></bdo></b><th id='cfxVJ'></th></span></q></dt></tr></i><div id='cfxVJ'><tfoot id='cfxVJ'></tfoot><dl id='cfxVJ'><fieldset id='cfxVJ'></fieldset></dl></div>

        画一个圆的半径和点周围的边缘

        时间:2023-09-30
      1. <i id='Atp3F'><tr id='Atp3F'><dt id='Atp3F'><q id='Atp3F'><span id='Atp3F'><b id='Atp3F'><form id='Atp3F'><ins id='Atp3F'></ins><ul id='Atp3F'></ul><sub id='Atp3F'></sub></form><legend id='Atp3F'></legend><bdo id='Atp3F'><pre id='Atp3F'><center id='Atp3F'></center></pre></bdo></b><th id='Atp3F'></th></span></q></dt></tr></i><div id='Atp3F'><tfoot id='Atp3F'></tfoot><dl id='Atp3F'><fieldset id='Atp3F'></fieldset></dl></div>
      2. <legend id='Atp3F'><style id='Atp3F'><dir id='Atp3F'><q id='Atp3F'></q></dir></style></legend>
        <tfoot id='Atp3F'></tfoot>

        <small id='Atp3F'></small><noframes id='Atp3F'>

          • <bdo id='Atp3F'></bdo><ul id='Atp3F'></ul>
                <tbody id='Atp3F'></tbody>

                1. 本文介绍了画一个圆的半径和点周围的边缘的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我真的被困在如何进行编程上.如何在Java中绘制一个半径和边缘周围的圆?

                  I'm really stuck on how to go about programming this. How to draw a circle in Java with a radius and points around the edge?

                  我需要在 JFrame 内绘制一个圆,其半径和点围绕圆周.我可以数学计算如何找到边缘周围点的坐标,但我似乎无法对圆进行编程.我目前正在使用 Ellipse2D 方法,但这似乎不起作用并且不返回半径,据我了解,它不会从中心绘制圆,而是使用高度和宽度从起始坐标绘制圆.

                  I need to draw a circle within a JFrame with a radius and points around the circumference. i can mathematically calculate how to find the coordinates of the point around the edge but i cant seem to be able to program the circle. I am currently using a Ellipse2D method but that doesn't seem to work and doesn't return a radius, as under my understanding, it doesn't draw the circle from the center rather from a starting coordinate using a height and width.

                  我当前的代码在一个单独的框架上,但我需要将它添加到我现有的框架中.

                  My current code is on a separate frame but I need to add it to my existing frame.

                  import java.awt.*; 
                  import javax.swing.*; 
                  import java.awt.geom.*; 
                  
                  public class circle extends JFrame { 
                    public circle() { 
                       super("circle"); 
                       setSize(410, 435); 
                       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
                       Panel sp = new Panel(); 
                       Container content = getContentPane(); 
                       content.add(sp); 
                       setContentPane(content); 
                       setVisible(true); 
                   } 
                  
                   public static void main (String args[]){
                    circle sign = new circle(); 
                   } 
                  } 
                  
                  class Panel extends JPanel { 
                   public void paintComponent(Graphics comp) { 
                       super.paintComponent(comp); 
                       Graphics2D comp2D = (Graphics2D) comp; 
                  
                       comp2D.setColor(Color.red); 
                       Ellipse2D.Float sign1 = new Ellipse2D.Float(0F, 0F, 350F, 350F); 
                       comp2D.fill(sign1); 
                   } 
                  }
                  

                  推荐答案

                  circle 上的点 可以指定为角度 θ 的函数:

                  Points on a circle may be specified as a function of the angle θ:

                  x = a + r cos(θ)
                  y = b + r sin(θ)

                  这里显示了2π/8的增量.

                  附录:正如 @Christoffer Hammarström 的评论中所建议的,这个 修订 示例减少了 magic numbers 原文.所需的点数成为构造函数的参数.它还使渲染适应容器的大小.

                  Addendum: As suggested in a comment by @Christoffer Hammarström, this revised example reduces the number of magic numbers in the original. The desired number of points becomes a parameter to the constructor. It also adapts the rendering to the container's size.

                  /** @see https://stackoverflow.com/questions/2508704 */
                  public class CircleTest extends JPanel {
                  
                      private static final int SIZE = 256;
                      private int a = SIZE / 2;
                      private int b = a;
                      private int r = 4 * SIZE / 5;
                      private int n;
                  
                      /** @param n  the desired number of circles. */
                      public CircleTest(int n) {
                          super(true);
                          this.setPreferredSize(new Dimension(SIZE, SIZE));
                          this.n = n;
                      }
                  
                      @Override
                      protected void paintComponent(Graphics g) {
                          super.paintComponent(g);
                          Graphics2D g2d = (Graphics2D) g;
                          g2d.setRenderingHint(
                              RenderingHints.KEY_ANTIALIASING,
                              RenderingHints.VALUE_ANTIALIAS_ON);
                          g2d.setColor(Color.black);
                          a = getWidth() / 2;
                          b = getHeight() / 2;
                          int m = Math.min(a, b);
                          r = 4 * m / 5;
                          int r2 = Math.abs(m - r) / 2;
                          g2d.drawOval(a - r, b - r, 2 * r, 2 * r);
                          g2d.setColor(Color.blue);
                          for (int i = 0; i < n; i++) {
                              double t = 2 * Math.PI * i / n;
                              int x = (int) Math.round(a + r * Math.cos(t));
                              int y = (int) Math.round(b + r * Math.sin(t));
                              g2d.fillOval(x - r2, y - r2, 2 * r2, 2 * r2);
                          }
                      }
                  
                      private static void create() {
                          JFrame f = new JFrame();
                          f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                          f.add(new CircleTest(9));
                          f.pack();
                          f.setVisible(true);
                      }
                  
                      public static void main(String[] args) {
                          EventQueue.invokeLater(new Runnable() {
                  
                              @Override
                              public void run() {
                                  create();
                              }
                          });
                      }
                  }
                  

                  这篇关于画一个圆的半径和点周围的边缘的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:如何检查值是否为整数类型? 下一篇:如何在 Java 中绘制一个看起来像样的圆圈

                  相关文章

                  最新文章

                2. <i id='GP2Nm'><tr id='GP2Nm'><dt id='GP2Nm'><q id='GP2Nm'><span id='GP2Nm'><b id='GP2Nm'><form id='GP2Nm'><ins id='GP2Nm'></ins><ul id='GP2Nm'></ul><sub id='GP2Nm'></sub></form><legend id='GP2Nm'></legend><bdo id='GP2Nm'><pre id='GP2Nm'><center id='GP2Nm'></center></pre></bdo></b><th id='GP2Nm'></th></span></q></dt></tr></i><div id='GP2Nm'><tfoot id='GP2Nm'></tfoot><dl id='GP2Nm'><fieldset id='GP2Nm'></fieldset></dl></div>

                  <tfoot id='GP2Nm'></tfoot>

                    <bdo id='GP2Nm'></bdo><ul id='GP2Nm'></ul>

                  <small id='GP2Nm'></small><noframes id='GP2Nm'>

                  1. <legend id='GP2Nm'><style id='GP2Nm'><dir id='GP2Nm'><q id='GP2Nm'></q></dir></style></legend>