设计CAD应用程序

时间:2010-02-23 18:17:20

标签: c# oop

我正在使用MVC架构的变体设计CAD应用程序。我的模型和视图彼此独立。他们通过控制器进行通信。我的问题是如果我需要绘制一个对象(比如直线或折线)我需要一些输入点。获得积分的最佳途径是什么?视图中的所有事件都由控制器订阅,控制器必须保留点,然后生成线或折线,最后将此线添加到视图中。但我不知道如何有效地捕获鼠标点,因为每个对象将具有不同数量的输入和不同的输入验证算法。 任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

我3年前在CAD application工作了,这些是我记得我们做过的一些提示(顺便说一下:应用程序是免费的,你可以下载它,注册你的副本,然后使用桁架编辑器中的功能

1-您可以添加形状绘制按钮,例如:一条线的按钮,一条折线的按钮,一个矩形......等等。

2-创建一个变量,用于保存应用程序的当前状态(可能是枚举):就绪,绘图点,绘制线,绘制折线,绘制圆,等等。

3-只要用户点击绘图按钮,系统就会从上面提到的状态进入相关状态。

4-完成绘图后系统返回“就绪模式”,可以通过预期的点数自动检测(点为1,线为2,椭圆为3等)或者用户按下Esc或右键单击绘图区域(如果预期的点数未知,例如:折线)。如果用户重新点击第一个点并且他已经绘制了3个以上的点,您也可以结束折线绘制。

5-如果用户在完成预期点数之前结束操作,系统可以取消当前的绘图操作。

...

答案 1 :(得分:0)

在设计CAD软件时,您不仅要考虑灵活性和动态性,还要考虑速度。你应该使用某种类型的包装类,它作为你和硬件驱动程序之间的一个非常薄的层,它应该返回像屏幕的像素数组,当前的bpp等等...这就是我要做的事情(并且确实做了)。现在在C#中,看到它是一种.NET语言,我不确定你能不能在下面找到它,但你仍然可以在控制器和你的笔对象之间找到处理程序,不是吗?