首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >CAD系统用户界面的决策表示例

CAD系统用户界面的决策表示例
EN

Stack Overflow用户
提问于 2013-02-05 15:22:14
回答 3查看 519关注 0票数 2

我想把一个简单CAD系统的用户界面放在一个决策表中。但我关心的是如何将这些东西放在一个表中。

首先,有一个当前模式(CurMode),它可以是:移动、旋转、删除

接下来,有如下的鼠标操作:

OnLButtonDown OnLButtonUp OnRButtonDown OnRButtonUp OnMButtonDown OnMButtonUp OnMouseMove

也许在当前鼠标光标下有一个对象的附加测试,如下面的ObjectUnderMouse (true/False)

使用这些参数和其他参数,我想为以下规则做出决定:

如果模式为删除,并且对象在鼠标下方,并且按下了OnLButtonDown,则删除该对象。

如果按下MButtonUp (MouseWheel),则按下zoom +;如果按下MButtonDown (MouseWheel),则按下zoom -

如果模式为移动,并且对象在鼠标下方,并且按下了OnLButtonDown,则将该对象放入缓冲区中。如果模式为Move,并且OnLButtonDown和object in Buffer和OnMouseMove动作,则移动对象

.诸若此类。

你明白这个场景了吗?

我在谷歌上搜索了很多,看到了非常简单的DT,但对于一个拥有数百个参数、状态、模式和UI操作的大型CAD系统来说,如何做才是一个良好的开端。

对于这样的CAD系统来说,决策表的最佳设计是什么?

提前感谢

EN

回答 3

Stack Overflow用户

发布于 2013-02-06 07:06:34

Statestep (http://statestep.com)可能就是您要找的。网站上给出的示例是针对用户界面的,并且描述了它在非常大的系统(具有覆盖数百万种可能性的规则的决策表)中的使用。有C语言的代码生成。

票数 1
EN

Stack Overflow用户

发布于 2013-02-06 07:40:23

感谢您的回复。我将仔细研究statestep (我们不使用QT)。但一般来说,我在确定我的cad系统的哪一部分是条件、动作、条件选择等定义像wiki这样的决策表时会遇到问题。Wiki Decision Table

票数 0
EN

Stack Overflow用户

发布于 2021-02-03 17:49:44

我有一个类似的决策过程要实现,这是我想出来的。也许可以重写得更漂亮,但那是另一个话题!

您还可以将if语句中的布尔值对齐,使其始终位于相同的列上,以使其看起来更像一个表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
////////////////////////////////////////////////////////////////////////////////
EditToolMode *EditTool::decideToolMode()
{   
    bool const isLongPress = (m_lastReleaseTime - m_lastPressTime) > sm_longPressThreshold;
    bool const isMouseMoved = (m_startCoords.get() - m_currentCoords.get()).norm() > sm_movedMouseThreshold;
    bool const isOnPoint = m_closestPoint.is_initialized() && (m_closestPointDistance2d < sm_onPointThreshold);
    bool const isOnEdge = m_selectedPolyline.is_initialized();
    bool const isOngoingSelection = !m_ongoingSelection.empty();
    bool const isEndEdit = m_editChronology == END_EDIT;
    bool const isOnOngoingSelection = isPointOnOngoingSelection(m_ongoingSelection, m_closestPoint);

    if (isOngoingSelection && isOnPoint && isOnOngoingSelection)
    {
        return new ...;
    }

    if (isOngoingSelection && !isMouseMoved && !isOnEdge)
    {
        return new ...;
    }

    if (!isMouseMoved && !isOnEdge && isEndEdit)
    {
        return new ...;
    }

    if (!isMouseMoved && isOnPoint && isLongPress)
    {
        return new ...;
    }

    if (!isMouseMoved && isOnEdge && isLongPress)
    {
        return new ...;
    }

    if (isMouseMoved)
    {
        return new ...;
    }

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

https://stackoverflow.com/questions/14710875

复制
相关文章
React 条件渲染(下)
render() { const isLoggedIn = this.state.isLoggedIn; return (
陈不成i
2021/07/29
7920
React 条件渲染(上)
在 React 中,你可以创建不同的组件来封装各种你需要的行为。然后还可以根据应用的状态变化只渲染其中的一部分。
陈不成i
2021/07/29
9260
列表渲染与条件渲染
相同的结构是列表渲染的前提,列表等都会有⼏千上万条的数据,它们的共同的特征就是数据的结构相同。
达达前端
2019/11/29
1.6K0
61. 精读《React 八种条件渲染》
本期精读的文章是:8 React conditional rendering methods
黄子毅
2022/03/14
5840
React 条件渲染最佳实践(7 种方法)
在 React 中,条件渲染可以通过多种方式,不同的使用方式场景取决于不同的上下文。在本文中,我们将讨论所有可用于为 React 中的条件渲染编写更好的代码的方法。
秋风的笔记
2020/10/27
5.8K0
【小程序】条件渲染与列表渲染
在小程序中,使用 wx:if="{{condition}}" 来判断是否需要渲染该代码块:
陶然同学
2023/02/24
1K0
【小程序】条件渲染与列表渲染
vue条件渲染
Vue.js中最常用的条件渲染方式是使用v-if指令。这个指令用于在DOM中插入或删除元素,基于一个表达式的结果来决定元素是否应该显示。如果表达式的结果为真,则元素会被渲染;如果结果为假,则元素会被从DOM中移除。
堕落飞鸟
2023/05/21
6570
React-BrowserRouter与HashRouter
BrowserRouter是React Router库提供的一种路由器组件,它使用HTML5 History API来管理URL和导航。BrowserRouter使用浏览器的history对象来记录URL的变化,并通过JavaScript来处理导航。
堕落飞鸟
2023/05/20
1.5K0
Vue 3 条件渲染
v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 truthy 值的时候被渲染。
公众号---人生代码
2020/11/03
9930
Vue 3 条件渲染
React渲染机制
jsx语法转换后,会通过creatElement或jsx的api转换为React element作为ReactDom.render()的第一个参数进行渲染。
goClient1992
2022/12/16
5960
请停止在 React 中使用“&&”进行条件渲染
英文 | https://javascript.plainenglish.io/its-2023-please-stop-using-for-conditional-rendering-in-react-b588a09ebb17
winty
2023/08/23
2400
请停止在 React 中使用“&&”进行条件渲染
Vue基础:条件渲染、列表渲染、事件处理
那么在上面的代码中切换 loginType 将不会清除用户已经输入的内容。因为两个模板使用了相同的元素,<input> 不会被替换掉——仅仅是替换了它的 placeholder。
奋飛
2019/08/15
1.9K0
Vue基础:条件渲染、列表渲染、事件处理
那么在上面的代码中切换 loginType 将不会清除用户已经输入的内容。因为两个模板使用了相同的元素, 不会被替换掉——仅仅是替换了它的 placeholder。
奋飛
2021/08/30
7850
React 元素渲染
与浏览器的 DOM 元素不同,React 当中的元素事实上是普通的对象,React DOM 可以确保 浏览器 DOM 的数据内容与 React 元素保持一致。
陈不成i
2021/07/29
5970
十二.Vue条件渲染
十二.Vue条件渲染
Java架构师必看
2021/05/14
7740
十二.Vue条件渲染
【React】1738- 请停止在 React 中使用“&&”进行条件渲染
我经常需要编写需要从服务器端获取数据的页面,这些数据用于呈现列表。如果数据的长度为0,则不应显示。
pingan8787
2023/09/01
2920
【React】1738- 请停止在 React 中使用“&&”进行条件渲染
react入门(五):事件处理、条件渲染、列表&keys、表单
一、事件处理 React事件绑定属性的命名采用驼峰式写法,而不是小写。 直接看代码 两种方式绑定事件并传参数 第一种: constructor(props) { super(props); //在dom上用bind函数绑定了this,这里可以省略 this.handleClick = this.handleClick.bind(this); } handleClick(value, e) { //e要写在value后面 console.log(value);
柴小智
2020/02/13
1.1K0
React Router 邦邦两拳🥊 🥊
这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战」 简介
用户4793865
2023/01/12
3.4K0
Vue3 | 条件渲染 与 列表循环渲染
而v-show则通过style="display: none;"样式的配置 隐藏组件:
凌川江雪
2021/03/04
1.2K0
Vue3 | 条件渲染 与 列表循环渲染
测开技能--Web开发 React 学习(九)条件渲染
在 React 中,你可以创建不同的组件来封装各种你需要的行为。然后,依据应用的不同状态,你可以只渲染对应状态下的部分内容。
雷子
2021/03/15
4660
测开技能--Web开发 React 学习(九)条件渲染

相似问题

使用React路由器进行条件渲染

40

React路由器渲染

18

React路由器渲染道具

11

ReactJS和React路由器中的条件路由和条件渲染

219

使用react路由器渲染页面

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文