300分相求:失量图的绘制和操作方法(类似于coreldraw,freehand等) (300分)

  • 主题发起人 主题发起人 chemstar
  • 开始时间 开始时间
C

chemstar

Unregistered / Unconfirmed
GUEST, unregistred user!
近来我想用delphi编制一个失量绘图软件(类似于coreldraw,freehand等),但我不
了解失量图的绘制和操作方法:比如如何绘制,如何放缩,如何保存等。delphi提供的几个
绘图函数好像只是绘制位图效果。请各位赐教!
 
procedure TForm1.Button1Click(Sender: TObject);
var
MyMetafile : TMetafile; //定义矢量图形的文件,类似TBitMap
begin
MyMetafile := TMetafile.Create;
MyMetafile.Width := 100;
MyMetafile.Height := 100;
with TMetafileCanvas.Create(MyMetafile, 0) do
try
// 建立在上面绘图的画布
Brush.Color := clRed;
Ellipse(0,0,100,100);
finally
Free;
end;
Form1.Canvas.Draw(0,0,MyMetafile);
MyMetafile.SaveToFile('c:/test.wmf');
MyMetafile.Free;
end;
 
作个真正的矢量图软件可不是件小事。有很多东西要做的。
你可以参考一些带源码的矢量图控件。如CadoDraw

http://211.152.134.207:1104/control/CadoDraw.v4.1.for.Delphi.and.BCB.Full.Source.WinAll.Retail-DiSTiNCT.rar
 
你找错工具了!
用MAPINFOR
 
失量图的绘制需要:
1)图形学的相关知识——图元(的表示),图元的显示(用户
坐标系与窗口坐标系),图形变换(平移、旋转等)。
2)数据文件的存储——链表操作

具体:
所有可显示的图形——通称图元可以分为三类——点、线、面,其中点是最基本的概念
,点可以是一个抽象的坐标也可以是有具体形状、位置的图形(如圆、正方形等),线是由
一系列点的集合,面是封闭的线加上面属性。它们的数据结构可表示:

点图元数据:坐标数据(X,Y),点属性数据(如形状、大小、色彩、编码(ID码)等)
线图元数据:点数目,各点的坐标数据(数组)、线属性数据
面图元数据:点数目,各点的坐标数据(数组)、面属性数据

2)显示图形时,坐标数据确定图形的位置,但注意用户坐标到屏幕坐标的转换。属性数据
确定图形的形状、颜色、线条等。

3)图形的放缩是通过用户坐标到屏幕坐标的转换实现的。至于保存图形数据,三类图元
分别采用三个链表进行保存比较方便。无论是编辑、查询、保存文件,都可以通过对
链表的操作实现。












 
我在DOS下做过一个CAD软件,不过功能太简单,现在也想重新做一个好点儿的,我们可以
多交流交流,建议你看一下陈建春编写的《Visual C++开发GIS系统》,里面讲到了关于做
矢量图的一些基本原理,并且有例程。
 
to wk_knife:
你提供的网址不存在,无法找到。目前我也在关注此问题。请高手出招。
如果有什么例子程序也请发给我,谢谢!!!
llh0223@163.net
 
我想搞明白这个问题.关注!
 
to wk_knife,你提供的网址不管用,能否mail一个给我
 
还是找个控件应付一下吧
 
用我们的控件吧。
http://www.codeidea.com
 
难道这么长时间就没有一个好的方案吗?
 
去 www.leadtools.com
这里应该有!老大,CAD软件不要去碰,如果你的水平不是太高的话。
 
我也遇到了同类的问题:
我不是坐矢量图,基本的图形就可以,不过要可以写入文字的。
word的功能差不多。
谢谢了!
 
yshhz兄:
但如何选择,放缩呢?保存后再次打开后,又如何再次编辑呢?
 
建立图元类,然后才行。
 
我一直用的imageen:
http://www.8421.org/download.php?id=137
 
to qdyoung,
ieview.dcu文件找不到呀!!!
 
哪个dpk有ieview,是iemview吧
把dpk所在的上一层目录加入libpath
 

Similar threads

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