如何创建一个简单的图表绘图库

时间:2015-05-31 17:01:16

标签: c#

我有一个跟随问题。我的任务是创建一个简单的图表绘图库(例如Windows图表)。我已经尝试过使用Graphics类,但这种方法几乎没有问题。使用Graphics时,我无法控制已绘制的内容。我需要一种与绘制对象交互的方法 - 从视图中擦除特定点或线,或者使鼠标悬停事件。 我只想要一些指导如何开始。

1 个答案:

答案 0 :(得分:2)

听起来有点像家庭作业问题,但这里概述了我将如何处理这个问题:

您需要为要绘制的每种不同类型的事物创建一个类类型,并从抽象基类型中获取它们。例如,您可能在抽象基类中有一个类DrawableObject,然后是Circle : DrawableObjectPolygon : DrawableObject等,您可以定义Paint(Graphics g)等方法。 IsHit(Point p)或类似的,因为每次更改图形时,都需要清除并重新绘制每个项目。这样,当你将DrawableObject放在一个数组中时,你只需要遍历它们并在每个上调用paint方法。因此每个绘制的对象都会将细节保留在自己的类中(例如坐标,大小等)

这就是我在WinForms上开始这样做的方法,虽然如果你可以使用WPF,你可以包含一个WPF控件主机,然后使用WPF形状控件作为你的项目,因为它们可以被操作,WPF会照顾重绘表面