用java将二进制黑白像素点,画在正方形中

有一串由0,1组成的字符串,有200位,0代表白色像素点,1是黑色的,将其存在23*23像素的正方形中,其它不足的地方用0补!四方形是有坐标的,其左上角为(0,0),依次类推,其左下角为(0,23),右下角为(23,23),右上角为(23,0),拜托高手给解答一下,最好编写的能够运行!答的好有追加分

第1个回答  2008-05-22
import java.applet.*;
import java.awt.*;
import java.awt.geom.*;
public class Text extends Applet
{
public void paint(Graphics g)
{
g.drawRect(0 ,0, 28,28);//画正方形
g.drawLine(3, 3, 9, 3);
g.drawLine(3, 3, 3, 9);
g.drawLine(5, 5, 9, 5);
g.drawLine(5, 5, 5, 9);
g.drawLine(7, 7, 9, 7);
g.drawLine(7, 7, 7, 9);
g.drawLine(8, 8, 9, 8);
g.drawLine(8, 8, 8 ,9);
g.drawLine(9, 9, 9, 9);
g.drawLine(25,3, 19, 3);
g.drawLine(25,3, 25,9);
g.drawLine(23,5, 19, 5);
g.drawLine(23,5, 23,9);
g.drawLine(21,7, 19, 7);
g.drawLine(21,7, 21,9);
g.drawLine(20,8, 19, 8);
g.drawLine(20,8, 20,9);

g.drawLine(19,9,19,9);

g.drawLine(3, 25, 5,25);
g.drawLine(3, 25, 3,23);
g.drawLine(4, 25, 5,25);
g.drawLine(4, 25, 4,23);
g.drawLine(5, 25, 5,25);
g.drawLine(5, 25, 5,23);

g.drawLine(7, 25, 7,21);
g.drawLine(3, 21, 7,21);
g.drawLine(9,25, 9,19);
g.drawLine(9,19,3,19);

g.drawLine(25,25,25,19);
g.drawLine(25,25,19,25);
g.drawLine(23,23,23,19);
g.drawLine(23,23,19,23);
g.drawLine(21,21,21,19);
g.drawLine(21,21,19,21);
g.drawLine(20,20,20,19);
g.drawLine(20,20,19,20);
g.drawLine(19,19,19,19);//画四个角的寻像图像

char[] c={1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
//输入一char型的字符串,实际上应该由程序1中获得
{
int j=3;
int i=12;
{
for (int n=0;n<=4;n++)

switch (c[n])
{
case(1):

g.drawLine(n+i,j,n+i,j);
}
}
}//如果a[n]为1,则在正方形中画一个黑色像素点,i,j分别为正方形的横.纵坐标
//正方形是23*23像素的,一行画完了接着画下一行,底下的全是重复的画点程序,是按一行一行画的
{
int j=4;
int i=12;
{
for (int n=5;n<=9;n++)

switch (c[n])
{
case(1):

g.drawLine(n-5+i,j,n-5+i,j);
}
}
}
{
int j=5;
int i=12;
{
for (int n=10;n<=14;n++)

switch (c[n])
{
case(1):

g.drawLine(n-10+i,j,n-10+i,j);
}
}
}
{
int j=6;
int i=12;
{
for (int n=15;n<=19;n++)

switch (c[n])
{
case(1):

g.drawLine(n-15+i,j,n-15+i,j);
}
}
}
{
int j=7;
int i=12;
{
for (int n=20;n<=24;n++)

switch (c[n])
{
case(1):

g.drawLine(n-20+i,j,n-20+i,j);
}
}
}
{
int j=8;
int i=12;
{
for (int n=25;n<=29;n++)

switch (c[n])
{
case(1):

g.drawLine(n-25+i,j,n-25+i,j);
}
}
}
{
int j=9;
int i=12;
{
for (int n=30;n<=34;n++)

switch (c[n])
{
case(1):

g.drawLine(n-30+i,j,n-30+i,j);
}
}
}
{
int j=10;
int i=12;
{
for (int n=35;n<=39;n++)

switch (c[n])
{
case(1):

g.drawLine(n-35+i,j,n-35+i,j);
}
}
}
{
int j=11;
int i=12;
{
for (int n=40;n<=44;n++)

switch (c[n])
{
case(1):

g.drawLine(n-40+i,j,n-40+i,j);
}
}
}
{
int j=12;
int i=3;
{
for (int n=45;n<=67;n++)

switch (c[n])
{
case(1):

g.drawLine(n-45+i,j,n-45+i,j);
}
}
}
{
int j=13;
int i=3;
{
for (int n=68;n<=90;n++)

switch (c[n])
{
case(1):

g.drawLine(n-68+i,j,n-68+i,j);
}
}
}
{
int j=14;
int i=3;
{
for (int n=91;n<=113;n++)

switch (c[n])
{
case(1):

g.drawLine(n-91+i,j,n-91+i,j);
}
}
}
{
int j=15;
int i=3;
{
for (int n=114;n<=136;n++)

switch (c[n])
{
case(1):

g.drawLine(n-114+i,j,n-114+i,j);
}
}
}
{
int j=16;
int i=3;
{
for (int n=137;n<=159;n++)

switch (c[n])
{
case(1):

g.drawLine(n-137+i,j,n-137+i,j);
}
}
}
{
int j=17;
int i=12;
{
for (int n=160;n<=164;n++)

switch (c[n])
{
case(1):

g.drawLine(n-160+i,j,n-160+i,j);
}
}
}
{
int j=18;
int i=12;
{
for (int n=165;n<=169;n++)

switch (c[n])
{
case(1):

g.drawLine(n-165+i,j,n-165+i,j);
}
}
}
{
int j=19;
int i=12;
{
for (int n=170;n<=174;n++)

switch (c[n])
{
case(1):

g.drawLine(n-170+i,j,n-170+i,j);
}
}
}
{
int j=20;
int i=12;
{
for (int n=175;n<=179;n++)

switch (c[n])
{
case(1):

g.drawLine(n-175+i,j,n-175+i,j);
}
}
}
{
int j=21;
int i=12;
{
for (int n=180;n<=184;n++)

switch (c[n])
{
case(1):

g.drawLine(n-180+i,j,n-180+i,j);
}
}
}
{
int j=22;
int i=12;
{
for (int n=185;n<=189;n++)

switch (c[n])
{
case(1):

g.drawLine(n-185+i,j,n-185+i,j);
}
}
}
{
int j=23;
int i=12;
{
for (int n=190;n<=194;n++)

switch (c[n])
{
case(1):

g.drawLine(n-190+i,j,n-190+i,j);
}
}
}
{
int j=24;
int i=12;
{
for (int n=195;n<=199;n++)

switch (c[n])
{
case(1):

g.drawLine(n-195+i,j,n-195+i,j);
}
}
}
{
int j=25;
int i=12;
{
for (int n=0;n<=4;n++)

switch (c[n])
{
case(1):

g.drawLine(n+i,j,n+i,j);
}
}
}
/*char b[]={0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0};
{
int j=11;
int i=3;
{
for (int n=0;n<=9;n++)

switch (b[n])
{
case(1):

g.drawLine(n+i,j,n+i,j);
}
}
}
{
int j=25;
int i=11;
{
for (int n=0;n<=9;n++)

switch (b[n])
{
case(1):

g.drawLine(i,j-n,i,j-n);
}
}
}*/

}
}本回答被提问者采纳
第2个回答  2008-05-21
很简单的吧。。
定义一个23*23的数组 之后赋值就可以了

如果是在命令行方式下运行输出 随便用什么方法画出来就可以
输出的时候判断 0 输出 空格 1 则输出 *
相似回答