关于矢量图的重画(50分)

  • 主题发起人 主题发起人 Sonic_Ben
  • 开始时间 开始时间
S

Sonic_Ben

Unregistered / Unconfirmed
GUEST, unregistred user!
矢量图每次放大缩小,最大化最小化都要重绘,如何记录下刚画的矢量数据。
简单的说,即编一个画板,如何保存图形。
 
在计算机图形中,可以将图形分为基本的三种类型:点、线和面。面由线组成,线由
点组成。复杂的图形由基本图形类型组成。
点状图形要素一般用一对坐标(X, Y)来表示;线状图形要素一般用一系列坐标来表
示 (X1, Y1) ... (Xn, Yn),线包括了直线段、折线、曲线,其中的曲线用密集的
折线来模拟;面状图形要素也用一系列坐标来表示 (X1, Y1) ... (Xn, Yn), (X1,
Y1),同时要求最后一点与第一点必须重合,使得图形成封闭的面域。
可以用数组的方法、记录的方法和对象等方法来表示点线面三种类型的图形要素。
 
你的矢量图是指什么,用的是metafile?
 
好说:
有几个关键:
1.定义一个记录图元坐标的数据结构(例如:直线(2 TPoint))
2.OnPaint 事件中一定要重画.
3.保存就是保存点的集合,以及封闭区域的填充方式,填充颜色,以及材质
(如果有的话)
我有自己编写一个绘图的例子,要的话发给你!
 
我做过这样的控件.它是由panel继承的,上面覆了一层timage
每次作图元增删时画到上面这样可免去在OnPaint中重画.
 
多人接受答案了。
 
后退
顶部