如何用布尔数组记录生成一个圆?例如bool circle3【】={0,1,0,
1,1,1,
0,1,0};
ps:设为一个黑白图像,1代表黑色,0代表白色,数组格式为3*3,4*4,等;不求完全匹配,大概就行,谢谢~
1,1,1,
0,1,0};
ps:设为一个黑白图像,1代表黑色,0代表白色,数组格式为3*3,4*4,等;不求完全匹配,大概就行,谢谢~
解决方案 »
- 关于char类型的使用
- public void launchFrame() 是干什么用的 在API中找不到它?
- java.net.SocketException: Connection reset 分高,在线等!!!!
- 静态方法如何获取静态块中的变量?
- java三种声明方式的问题
- 怎样把jsp转换为html
- java掉用C程序
- Code Jam 2005的Java题,好难啊!
- java,C++,C,Pascal四种语言的区别,特点,大家来说说,发言有分。
- rabbitmq fanout广播模式无法发给多个消费者,求大神解答
- 最近在做图书管理系统,怎么实现借书还书的功能?
- JTable中的setValueAt不能被调用
2.从圆心开始,沿上下左右方向,根据x坐标和圆的公式,计算出圆上的点的坐标。将坐标上对应的数组元素标记为0.
再知道x,或y就可以计算出y或x
int circle[][] = circle(50,30);
for (int l = 0; l < 50; l++){
for (int c = 0; c < 50; c++){
System.out.print(circle[l][c]);
}
System.out.print("\n");
}
}
public static int[][] circle(int dim,int coe){
int circle[][] = new int [dim][dim];
for (int l = 0; l < dim; l++){
for (int c = 0; c < dim; c++){
if ((Math.pow((c+1)-(dim+1)/2, 2)+Math.pow((l+1)-(dim+1)/2,2)>Math.pow((dim-1)/2,2)-coe )&&
(Math.pow((c+1)-(dim+1)/2, 2)+Math.pow((l+1)-(dim+1)/2,2)<Math.pow((dim-1)/2,2)+coe )){
circle[l][c] = 1;
}
else
circle[l][c] = 0;
}
}
return circle;
}
瞎写了一个
第一个参数是数组的维数,第二个是个系数,越大,圆周越厚
我拿30以上作为维数试试还可以,可能较小时不太准确