你先想這道題的思路吧。
在山東等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供做網站、成都網站制作 網站設計制作定制設計,公司網站建設,企業(yè)網站建設,品牌網站制作,營銷型網站,成都外貿網站建設,山東網站建設費用合理。
首先打印出圓形的話就是在一個60-60這種正方形里面話個圓,你先要知道要畫的點的位置對吧。算出所有的點打印出來。就是這個思路。然后是怎么算的問題了
public?class?SSS?{
public?static?void?main(String[]?args)?{
//半徑
int?r?=?30;
for?(int?y?=?0;?y?=?2?*?r;?y?+=?2)?{
long?x?=?Math.round(r?-?Math.sqrt(2?*?r?*?y?-?y?*?y));
long?longLength?=?2?*?(r?-?x);
for?(int?i?=?0;?i?=?x;?i++)?{
System.out.print('?');
}
System.out.print('*');
for?(int?j?=?0;?j?=?longLength;?j++)?{
System.out.print('?');
}
System.out.println('*');
}
}
}
import java.awt.Frame;
import java.awt.Graphics;
public class S extends Frame{
private int x;
private int y;
private boolean drawOval;//為true時繪制
//測試入口函數(shù)
public static void main(String []args)
{
new S().print();
}
//構造函數(shù),初始化x、y坐標,設置drawOval變量為false,設置窗體大小
public S()
{
x = 200;
y = 200;
drawOval = false;
this.setSize(400,400);
this.setVisible(true);
}
public void print(){
//在調用S類實例的print方法時,畫一個以屬性X,Y為起點的寬高為10的圓.
drawOval = true; //設置drawOval變量為true
repaint(); //調用刷新畫面方法
}
public void paint(Graphics g)
{
//為true時繪制
if(drawOval)g.fillOval(x,y,10,10);
}
}
使用java畫圓要用到繪圖類Graphics,下面是實例代碼和運行效果:
package?com.dikea.demo01;
import?java.awt.*;
import?javax.swing.*;
//?java繪圖原理
public?class?demo_01??extends?JFrame?{
MyPanel?mp?=?null;
public?static?void?main(String[]?args)?{
//?TODO?自動生成的方法存根
demo_01?demo01?=?new?demo_01();
}
public?demo_01(){
mp?=?new?MyPanel();
this.add(mp);
this.setSize(400,?300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
//?定義一個MyPanel面板,用于繪圖區(qū)域
class?MyPanel?extends?JPanel{
//覆蓋JPanel
//?Graphics?是繪圖的重要類,可以理解成一支畫筆
public?void?paint(Graphics?g){
//??1.?調用父類函數(shù)完成初始化任務
//??這句話不可以少
super.paint(g);
//?先畫出一個圓圈
g.drawOval(100,?100,?30,?30);
}
}
代碼復制進ide編程工具,運行效果如下: