如何通过编程达到形成CAD这样的图形!极大的困惑???(200分)

  • 主题发起人 主题发起人 周仁
  • 开始时间 开始时间

周仁

Unregistered / Unconfirmed
GUEST, unregistred user!
如何通过编程达到形成CAD这样的图形!极大的困惑???
我的初步设想是
1。通过image的Canvas(画布)进行作图,并可把从作图过程中获得的数据全部
保存在数据库中。该数据库以一个工程文件形式存盘。
2。通过调用该数据库中的数据,进行图形软件的计算输出。
问题是
1。以上设想是否最佳思路,即可否从别的方式进行作图?
2。这些大量的坐标数据是否必须采取数据库的形式?若采取数据库方法,由于
是一个存盘数据库文件,那势必造成大量字段名的产生;此时,该如何解决
大量的空记录数据问题???
3。有否别的数据存盘格式!
4。这个存盘数据库文件,如何做到包容这张image的Canvas(画布)?
我是第一次加入Delphi论坛讨论,属菜鸟级!问题若属幼稚,请各位前辈多多包涵。

 
http://www.truevcl.com
有TCAD。
 
推荐一个思路--我没有实践,但做了类似的工作。
1、建立流文件。
2、创建canvas的大小、style、brush等等。
3、在canvas上函数画直线、弧线、矩形、椭圆等。
4、把函数送到流文件中。
5、读取流文件可显示已做的工作。
---我要看《笑傲江湖》第一集了,以后再谈。
 
to 周仁:
怎么今晚新浪上不去?
我曾编了在canvas上用函数(矢量图如autocad可能也如此)画大图(8000*9000)和
二进制文件的读取的程序,而类似autocad的工作没做。现提供一段代码供你参考。代码
出自岳庆生所编的《版主答疑--delphi高级编程技巧》(清华大学出版社)29-31页“如何
通过流保存对象属性”:
下面是利用流存取对象的一个例子:
首先将Arecord中的值顺序保存到一个文件流中:
DataStream:=TFileStream.create('vcc.dat',fmcreate);
MakeDate:=FormatDateTime('mmmm d,yyyy',date);
DateStream.Write(MakeDate,sizeof(MakeDate));
RCount:=DateArray.size; //这个DateArray不知道从哪个类继承?
DateStream.Write(RCount,sizeof(RCount));
for q:=1 to DateArray.size do
begin
Application.ProcessMessages;
ARecord:=DataArray[q] as TNameRecord; // TNameRecord不知定义怎样?
DateStream.Write(Arecord.id,sizeof(Arecord.id));
.....
DateStream.Write(Arecord.e_mail,sizeof(Arecord.e_mail));
end;
DateStream.Destroy;
这部分将同一个文件流中的内容恢复到NameRecord记录:
DataStream:=TFileStream.create;
DataStream.loadfromfile('vcc.dat');
DataStream.read(MakeDate,sizeof(MakeDate));
DateStream.read(RCount,sizeof(RCount));

for q:=1 to rcount do
begin
NameRecord:=TNameRecord.create;
DateStream.read(NameRecord.id,sizeof(NameRecord.id));
....
DateStream.read(NameRecord.e_mail,sizeof(NameRecord.e_mail));
NameArray.Insert(NameRecord);
end;

----若你看以上代码有所启发,email交流。

3wccdel
3月29日

 
感谢3wccdel兄弟的相助,我还企盼着众多高手的指点迷津。加油加油!!
 
<font color=red>目前绝大多数的专业GIS/CAD系统存放坐标/空间数据都是文件型,而不是
数据库,因为这种数据不是二维关系型数据库结构能描述的。而属性数据可以存放在普通
关系型数据库中。</font>
1。以上设想是否最佳思路,即可否从别的方式进行作图?
2。这些大量的坐标数据是否必须采取数据库的形式?若采取数据库方法,由于
是一个存盘数据库文件,那势必造成大量字段名的产生;此时,该如何解决
大量的空记录数据问题???
<font color=red>空间数据用关系型数据库存放,会出现大量的冗余。</font>
3。有否别的数据存盘格式!
<font color=red> 在专业CAD领域有许多的文件格式,DWG/DXF,Shape,等</font>
4。这个存盘数据库文件,如何做到包容这张image的Canvas(画布)?
<font color=red>什么叫“包容”</font>
 
小伙子的想法不错,我以前参与过图形平台的开发,如果你用Delphi的话最好不要从Image
继承,可以从TGraphicControl继承,还有存储格式如果你的图开数据量不是很大,用数据
库也不是不行,如果你想做成AutoCAD的通用形式,最好还是自定义格式,而且要考虑与其
它数据的接口问题。对了,如果你数学底子不好,最好不要做了。这里面要求许多的算法。
 
值得一看,跟踪!
 
郑重抱歉,由于电脑故障,无法早日上网联系。近日,重装系统后才得以进入大富翁论坛。
再次向3wccdel及吕雪松,LanFairy诸位大哥抱歉!!有幸得几位大名鼎鼎的高手赐教,谢谢
三位的贴子。马上纷纷。

另外,我只有四十五分了,但我还有一个图形制作类的问题,请诸位兄台赐教!
见5月19日图形制作类贴子!
小弟:周仁
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部