编写一个非常简单的 CAD 应用程序
Writing a very simple CAD Application
我想创建一个非常简单的 2D(后来的 3D 取决于资金)交互式 CAD 应用程序,具有很少的功能,例如:
- 能够创建线、点、简单的凸多边形和简单的形状(例如椭圆)
- 能够细分多边形。
出于这个原因,我将采用客户端-服务器模型,其中客户端由 GUI 和渲染组件组成。为此,我正在考虑使用 Kivy 框架,因为它在一个框架中同时具有 GUI 和 OpenGL。另一种选择是使用 QT 框架。这是符号上的方便,一切都将在一台机器上 运行。
对于包含几何操作代码的服务器部分,我正在考虑直接使用 OpenCASCADE,或者 gmsh。这里的基本思想是:一旦几何体被建模,它就会在服务器中被网格化,然后被发送回客户端进行渲染。
我的问题是,这种方法在交互式应用程序中有效吗?我的理解是网格生成需要很长时间,因此为每个小变化创建一个网格在几何中可能不适合交互式应用程序。但是,OpenGL 只能渲染非常少的几何图元(如点、线、三角形和四边形),并且只有在我们对几何体进行网格划分时使用 OpenGL 才有意义(据我所知,OpenCASCADE 使用边界表示来表示模型)。
请理解,我对一般的几何建模和计算机图形学还比较陌生,因此非常感谢您的帮助。
编辑:添加更多说明。
“这种方法在交互式应用程序中有效吗?”。不一定,除非您的客户非常有耐心。渲染会很不稳定,即使你有近乎即时的传输。这就是发明硬件加速的原因。这意味着它必须在机器上是本地的。
如果您不是很有经验,我建议您稍后再使用 client-server 架构。首先开始使用独立应用程序。
我认为不需要网格划分,如果你只需要 2D。首先只从渲染曲线开始。如果您需要填充形状,颜色填充算法可能是更简单的方法。
Open Cascade 需要数年才能学会
我们的替代方案每月 20 美元(在您开发期间):https://dynoinsight.com/ProDown.htm
最佳
我想创建一个非常简单的 2D(后来的 3D 取决于资金)交互式 CAD 应用程序,具有很少的功能,例如:
- 能够创建线、点、简单的凸多边形和简单的形状(例如椭圆)
- 能够细分多边形。
出于这个原因,我将采用客户端-服务器模型,其中客户端由 GUI 和渲染组件组成。为此,我正在考虑使用 Kivy 框架,因为它在一个框架中同时具有 GUI 和 OpenGL。另一种选择是使用 QT 框架。这是符号上的方便,一切都将在一台机器上 运行。
对于包含几何操作代码的服务器部分,我正在考虑直接使用 OpenCASCADE,或者 gmsh。这里的基本思想是:一旦几何体被建模,它就会在服务器中被网格化,然后被发送回客户端进行渲染。
我的问题是,这种方法在交互式应用程序中有效吗?我的理解是网格生成需要很长时间,因此为每个小变化创建一个网格在几何中可能不适合交互式应用程序。但是,OpenGL 只能渲染非常少的几何图元(如点、线、三角形和四边形),并且只有在我们对几何体进行网格划分时使用 OpenGL 才有意义(据我所知,OpenCASCADE 使用边界表示来表示模型)。
请理解,我对一般的几何建模和计算机图形学还比较陌生,因此非常感谢您的帮助。
编辑:添加更多说明。
“这种方法在交互式应用程序中有效吗?”。不一定,除非您的客户非常有耐心。渲染会很不稳定,即使你有近乎即时的传输。这就是发明硬件加速的原因。这意味着它必须在机器上是本地的。
如果您不是很有经验,我建议您稍后再使用 client-server 架构。首先开始使用独立应用程序。
我认为不需要网格划分,如果你只需要 2D。首先只从渲染曲线开始。如果您需要填充形状,颜色填充算法可能是更简单的方法。
Open Cascade 需要数年才能学会
我们的替代方案每月 20 美元(在您开发期间):https://dynoinsight.com/ProDown.htm
最佳