<<疯狂Java讲义>>练习题- 第三章 画近似圆
2013-03-06 15:44
417 查看
import java.lang.Math;
public class FirstProject {
public static void main(String[] args) {
paint(40); //半径40
}
public static void paint(int r) {
//假定圆心在坐标(r,r);
int y = r * 2; //y的坐标开始
int x = 0;
int c = 0; //中间空格数量
int z = 2; //每行递减量
for (int j = r * 2; j >= 0; j=j-z) {
x = getX(r, y);
System.out.print(getSpace(x) + "*");
c = (r-x)*2;
System.out.println(getSpace(c) + "*");
y-=z;
}
}
public static int getX(int r, int y) {
//解圆标准方程的
int x = y - r;
double t = Math.sqrt((r * r) - (x * x));
return (int) Math.round(r-t);
}
public static String getSpace(int i) {
String s = "";
for (int j = 0; j < i; j++) {
s += " ";
}
return s;
}
}
public class FirstProject {
public static void main(String[] args) {
paint(40); //半径40
}
public static void paint(int r) {
//假定圆心在坐标(r,r);
int y = r * 2; //y的坐标开始
int x = 0;
int c = 0; //中间空格数量
int z = 2; //每行递减量
for (int j = r * 2; j >= 0; j=j-z) {
x = getX(r, y);
System.out.print(getSpace(x) + "*");
c = (r-x)*2;
System.out.println(getSpace(c) + "*");
y-=z;
}
}
public static int getX(int r, int y) {
//解圆标准方程的
int x = y - r;
double t = Math.sqrt((r * r) - (x * x));
return (int) Math.round(r-t);
}
public static String getSpace(int i) {
String s = "";
for (int j = 0; j < i; j++) {
s += " ";
}
return s;
}
}
相关文章推荐
- <<<第十单元练习题>>>
- <<万物简史>>第三章埃文斯牧师的宇宙
- <第三章>Node 学习笔记 |>URL网站解析<|
- c++ <new定位运算符>与<显式调用析构函数> - 练习题
- <<深入Java虚拟机>>-第三章-垃圾收集器与内存分配策略-学习笔记
- <<Ruby元编程>>第三章笔记
- <<UNIX环境高级编程>>之第三章理解
- 《疯狂Java讲义》练习题- 第三章 画近似圆
- 对<<寒江独钓---Windows内核安全编程>>中第3章<<串口过滤>>的改进
- 读<<Java解惑>>后的碎嘴子(第三章)
- <<Effective C++>>读书笔记3: 资源管理
- 关于<object>与<embed>的区别
- <%@ include file=""%>与<jsp:include page=""/>区别
- 搞笑的<Button></Button>
- java中的<?><T><E>详解Jdk5.0新特性Generic Types (泛型)
- JSP的<c:choose><c:forEach><c:if><c:when><c:set>标签
- Expression<Func<int, bool>>与<Func<int, bool>
- <!--[if !IE]><![endif]-->解释
- <span>,<strong>,<em>标签
- 消除被两个<p>标签包含的<img> 之间的缝隙