这是怎样用程序实现的?(100分)

  • 主题发起人 主题发起人 mj_hc
  • 开始时间 开始时间
M

mj_hc

Unregistered / Unconfirmed
GUEST, unregistred user!
灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌
灌灌灌灌灌灌灌灌灌灌水水灌灌灌灌灌灌灌灌灌灌灌灌
灌灌灌灌灌灌灌灌灌灌水水灌灌灌灌灌水水灌灌灌灌灌
灌灌灌灌灌灌灌灌灌灌水水灌灌灌灌水水水灌灌灌灌灌
灌灌灌灌灌灌灌灌灌灌水水灌灌灌水水水水灌灌灌灌灌
灌灌灌灌灌灌灌灌灌灌水水灌灌水水水灌灌灌灌灌灌灌
灌灌水水水水水水水水水水水水水灌灌灌灌灌灌灌灌灌
灌灌水水水水水水水水水水水水灌灌灌灌灌灌灌灌灌灌
灌灌灌灌灌灌灌水水水水水水水灌灌灌灌灌灌灌灌灌灌
灌灌灌灌灌灌灌水水灌水水灌水水灌灌灌灌灌灌灌灌灌
灌灌灌灌灌灌水水灌灌水水灌灌水水灌灌灌灌灌灌灌灌
灌灌灌灌灌灌水水灌灌水水灌灌灌水水灌灌灌灌灌灌灌
灌灌灌灌灌水水灌灌灌水水灌灌灌水水水灌灌灌灌灌灌
灌灌灌灌灌水水灌灌灌水水灌灌灌灌水水水灌灌灌灌灌
灌灌灌灌水水灌灌灌灌水水灌灌灌灌灌水水水灌灌灌灌
灌灌灌水水灌灌灌灌灌水水灌灌灌灌灌水水水水水灌灌
灌灌水水灌灌灌灌灌灌水水灌灌灌灌灌灌水水水水水灌
灌灌灌灌灌灌灌灌水水水水灌灌灌灌灌灌灌灌灌灌灌灌
灌灌灌灌灌灌灌灌灌水水水灌灌灌灌灌灌灌灌灌灌灌灌
灌灌灌灌灌灌灌灌灌灌水灌灌灌灌灌灌灌灌灌灌灌灌灌
灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌



这是怎样用程序实现的?最好有源码!
 
参考 造字程序
 
我考,学数学专业的问的问题是不一样
佩服!
 
将图形分块后依次扫描,找出每一块图形对应的符号(此处即文字)
 
我要是说用数组,你会不会打我? :)
 
//我要是说用数组
我也有此打算,用动态数组有什么不好吗?
 
能谈具体点么?
像这样的图形还有很多,如:

..................$$.....................$
................$$$$$$.................$$$............$
................$$$$$$$$..............$$$...........$.$$
.................$$$$$$$$...........$$$$.........$$...$$$
...................$$$$............$$$$.......$$$....$$$$$
........................$$$$......$$$......$$$.....$$$$$$$$
.....................$$$$$$$$....$$.....$$$......$$$$$$
..................$$$...$$$$......$.$$$$.......$$
...............$$$$.....$$$..............$$
............$$$$$......$$$................$$$$
.........$$$$$........$$$....$.............$$$$$
.......$$$$$........$$.$$..$..............$$$$
.....$$$$..........$$..$.$..............$$
.................$$...$$............$...........$$$$$$$$$$$$$
................$$..$$$..................$$$$$$$.............$$$$
..............$$..$$$$$........$....$$$$$......................$$$$
.............$$.$$$$..$...........$$.........$..................$$$$
............$$$$$$....$......$...$...........$$.................$$$$$
..............$$$....$$......$..$............$$$$...............$$$$$
.....................$$.......$$$.........$$$$$$$$$$$$..........$$$$$
....................$$$........$$......$$$$$$$$$$$$............$$$$$
....................$$$..........$$.........$$$..............$$$$$
.....................$$............$$.......$$...........$$$$$$



不会是用手描的吧,肯定是用程序实现的。
 
这很简单,首先在图形上绘制文字,然后扫描图形,根据图形填充数组就可以了。
 
我有一个笨方法不知和不和你胃口。
procedure TForm1.Button1Click(Sender: TObject);
var
bmp:TBitmap;
i,j,w,h:integer;
wj:TstringList;
s:String;
begin
wj:=TstringList.Create;
Bmp := TBitmap.Create;
Bmp.Canvas.Font.Name:='宋体';
Bmp.Canvas.Font.Size:=16;
h:=Bmp.Canvas.TextHeight('水');
w:=Bmp.Canvas.TextWidth('水');
Bmp.Width:=w;
Bmp.Height:=h;
Bmp.Canvas.TextOut(0,0,'水');
for i:=1 to w do begin
s:='';
for j:=1 to h do begin
if bmp.Canvas.Pixels[j,i]=0 then s:=s+'水' else s:=s+'灌';
end;
wj.Add(s);
end;
wj.SaveToFile('d:/a.txt');
end;
 
差不多就是panyongze的这个思路,不过他是逐点判断的,如果要效果比较可以,
则字(图)应该写的比较小。

如果字(图)本来就比较大,这样就不行了,就用分块的方法。
比如先把一个图片分成100X100块,按块分析,和逐点分析类似,不过每一块是为
0或为1,应该通过判断这块里面的象素多少来决定,比如少于三分之一的,认为此
块为空(0),否则为有(1),于是相当于把块变成了点,然后就变成了逐点了。

当然,要是想效果更好,可以增加判断块的结果,而不仅仅是有和空,比如上、
下、左、右、中、空、全 等等,分别对应一个字(比如你的“灌”可以对应“全”)

我没有做过,所以只有这样一个思路。望高手指教
 
多人接受答案了。
 
后退
顶部