《疯狂Java讲义》练习题 第三章 画近似圆
其实这个问题并不难,但是很多年没有研究过几何了.问题卡在这里了,准确的说我根本没有学过圆的标准公式这部分内容,google了很多,重新划了坐标研究了公式..解方程...
虽然结果还不是很圆,但是方法应该是正确了.
主要是因为double取整后有一些偏差.
另外行数多少,半径大小也相互影响
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;
}
}
---------- 运行Java ----------
**
* *
* &nbs
相关文档:
Java Servlet API说明文档(2.1a版)(四)
术语表\r
bytecode
字节码:由Java编译器和Java解释程序生成的机器代码。
cookie
由Web服务器建立的数据,该数据存储在用户的计算机上,提供了一个Web站点跟踪用户的参数并 ......
Xml代码 \n 回车(\u000a) \t 水平制表符(\u0009) \b 空格(\u0008) \r 换行(\u000d) \f 换页(\u000c) \' 单引号(\u0027) \" 双引号(\u0022) \\ 反斜杠(\u005c) \ddd 三位八进制 ......
一直以来,java对于我都是新事物,对于新事物的接受方式也一直习惯从浅入深,循序渐进。
但是今天,张孝详老师给我们上了生动的一课,一个程序员最重要的能力就是学习能力,因为
计算机领域的技术其更新超快,目前所掌握的知识很有可能短时间内会被淘汰,而且会出现更好
更简洁的语言,那么该怎么去掌握呢。张老师认为, ......
如何交换两个变量的值:
C语言中的传值代码如下:
int change(int x,int y)
{
int temp=x;
x=y;
y=temp;
}
C语言中的传址代码如下:
int change(int *p,int *q)
{
int temp=*p;
*p=*q;
*q=temp;
}
使用C++中的引用类型代码如下:
int change(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
JAV ......
引言:从一个朋友的blog转过来的,里面解决了两个困扰我很久的问题。很有久旱逢甘霖的感觉。
中软国际电子政务部Jeff Chi总结,转载请说明出处。
概述:
A.==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。
&nb ......