首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设计CAD应用程序

设计CAD应用程序
EN

Stack Overflow用户
提问于 2010-02-24 02:17:20
回答 2查看 1.3K关注 0票数 0

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

EN

回答 2

Stack Overflow用户

发布于 2010-02-24 06:10:02

3年前我在CAD application工作,这些是我记得我们做过的一些技巧(顺便说一句:这个应用程序是免费的,您可以下载它,注册您的副本,并使用编辑器中的功能)

2-创建保存应用程序当前状态的变量(可以是枚举):就绪、绘制点、绘制线、绘制折线、绘制圆、...etc。

3-无论用户在何处单击绘图按钮,系统都会进入上述相关状态。

4-绘图结束时,系统返回“就绪模式”,当用户按Esc键或在绘图区域上单击鼠标右键(如果预期的点数未知,例如: polyline)时,系统可以通过预期点数(1表示点,2表示直线,3表示椭圆,...etc)自动检测到该模式。如果用户重新单击第一个点并绘制了3+点,也可以结束多段线绘制。

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

..。

票数 1
EN

Stack Overflow用户

发布于 2010-02-24 02:27:47

在设计CAD软件时,不仅要考虑灵活性和动态性,还要考虑速度。你应该使用某种包装类,作为你和硬件驱动程序之间的一个非常薄的层,它应该返回像屏幕的像素数组,当前的bpp等内容。这就是我会怎么做的(实际上也是这样做的)。现在在C#中,由于它是一种.NET语言,我不确定你是否可以在下面这样做,但是你仍然可以在控制器和你的笔对象之间有一些处理程序,不是吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2320631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档