热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

面向工程领域的图形平台介绍

1.概述1.1.什么是图形平台图形平台指的是某行业的某专业类软件所需要的基础框架及功能的统称,比如我们常见的AUTOCAD,就是面向建筑,水暖,石油等专业行业的一个极具代表性的通用性图形平
1. 概述

1.1. 什么是图形平台

    图形平台指的是某行业的某专业类软件所需要的基础框架及功能的统称,比如我们常见的AUTOCAD,就是面向建筑,水暖,石油等专业行业的一个极具代表性的通用性图形平台。图形平台是一个底层的框架,在这个框架的基础之上,可以根据公司自身需要或者市场需求开发众多的类似的软件。开发一个强大的具备可维护性,复用性,扩展性的图形平台的技术难度非常高,必须具备深厚的技术储备,和一个契合度很高的开发团队。一般来说,公司的图形平台作为基础工具,属于一个公司的核心资产,只会在它的基础上开发新的产品,一般不会对外出售源代码。

1.2. 国内图形平台的现状

国内具备开发图形平台实力的公司并不多,特别是能够开发高质量的图形平台的公司更是少之又少,国内公司一般是使用国外的图形平台做二次开发。国外有名的图形平台比如二维的AUTOCAD,三维的Revit等都封装了底层接口,为专业开发人员提供了二次开发方法或者函数库,开发人员使用这些图形平台,可以在一定程度上满足了开发和应用的需要,提高了应用系统的开发效率,但是由于是基于别人的源发平台,不可能与我们自身的需求完全无缝满足,由于无法获知其内数据组织结构和核心算法,深层开发和系统优化受到极大限制,一些国家处于战略方面的考虑,在图形平台高端效果和核心算法方面禁止或部分限制对我国的出口,造成事实上的技术壁垒和垄断,而且外国商业化的图形平台大都价格昂贵,根据开放程度一套售价数万或者数十万美元,长期使用国外图形平台,势必要持续花费大量的资金,同时造成我国在这一领域缺乏核心技术。

2. 图形平台的一般结构

2.1. 图形平台的示意图

 

2.1.1. 数据库

   数据库是整个系统的核心,用来管理对象模型,是从专业角度抽象而来,整个图形平台是通过数据库驱动运转的,数据库包括创建对象,对象动态识别,对象的存储,对象的组织和对象的通讯,这些对象是以相互继承的关系展开的,如果我们做同一类软件话,整个平台最主要的作用就按照专业定义相应的数据库。

 

2.1.2. 图形

    图形的作用是用来展示数据库中存储的专业数据, 数据库中的专业数据和图形数据形成映射关系,使用者对图形的操作最终会反映到数据库数据的操作上。图形模块同时提供了加速优化算法,比如各种空间分割技术(八叉数,四叉数等),图形系统主要负责对图形的组织,管理与显示,具有图形表示的对象通过调用图形系统的功能,完成对象的显示。

2.1.3. UI

   用户界面主要完成对交互事件的组织与管理,并协同图形系统,实现对象的各种交互方式。系统在处理交互事件时,给出一个统一的流程,处理不同的交互事件,如场景的各种显示方式,各种交互的建模方法,同时用户界面模块还包括语法解决模块,用来对键盘输入的字符进行解析。

2.1.4. 控制器

    在程序架构中,有一种典型的模式,叫做模型视图控制器(MVC)模式,这里的控制器就是关联数据库和图形的部分,控制器作为一种插件式的模块,把数据库和图形完全隔离开,使他们两者彻底接触耦合,能够分别的复用,比如,数据库如果完全独立,则可以成为专门存储数据的地方,就叫做数据中心,如果图形完全独立,则除了专门用于工程领域外,也可以用于三维仿真等其它领域。

2.2. 图形平台不同模块的组织关系

    数据库做为图形平台的核心部分,控制着其它模块的运行,其它模块都要围着数据库转,图形平台各个模块之间可以设计成插件式的组织方式,插件式的组织方式有很多优点,比如可以控制错误,如果在某一模块出现错误,错误不至于影响其它模块,便于复用,开发不同的产品的时候,可直接拖用,容易扩展,在原有插件的基础上开发新的插件。

2.3. 图形平台与产品的关系

2.3.1. 同一类产品

  对于同一类产品来说,只需重新定义数据库即可,其它模块如图形模块,算法模块,均可复用,例如钢结构,如果做出了门刚这样的软件,那么再做栈桥这样的软件,只要把数据库按照栈桥的专业逻辑重新定义,其它所有模块都可以复用,专业需求和产品的关系如下:

 

 

2.3.2. 不同类的产品

   由于整个图形平台是数据库驱动的,所以平台的核心就是定义数据库,如果不同的产品差别太大,亦或完全不同的两个行业,比如建筑行业和石油行业,这样会导致整个数据库完全没有共同点,那么数据库模块和控制器模块都不能复用,只有图形模块可以,具体项目需要具体对待。原则上不同类的产品需要启用不同的开发平台,当然不同平台的设计思路还是有一定共通行的。

3. 评估图形平台的难度及开发成本

   由于图形平台技术含量很高,工程量很大(想象一下AUTOCADRevit这类二维和三维图形平台的难度),并且需要大量的资金投入,不同的行业需要的图形平台也不同,所以在不知道需求的情况下,无法对公司需要的平台的难度和规模做出一个准确评估。这就要求公司决策层一定要明确设计方向和功能模块,确保完成一个成熟产品,然后从成熟产品里面提取出公共部分,就会形成一个图形平台。避免人力物力的无谓消耗,相当于无形中降低了开发难度和成本。

欢迎交流图形平台技术及3D的一切 微信 likeyou135  公众号 GraphicsPlatform


推荐阅读
  • 本文探讨了 TypeScript 中泛型的重要性和应用场景,通过多个实例详细解析了泛型如何提升代码的复用性和类型安全性。 ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • 本文详细介绍如何使用Netzob工具逆向未知通信协议,涵盖从基本安装到高级模糊测试的全过程。通过实例演示,帮助读者掌握Netzob的核心功能。 ... [详细]
  • 无论是在迁移到云服务还是更换云服务商的过程中,数据迁移都是一个至关重要的环节。本文将探讨数据迁移中可能遇到的问题及解决方案,包括路径问题、速度问题和数据完整性等。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • Ext JS MVC系列一:环境搭建与框架概览
    本文主要介绍了如何在项目中使用Ext JS 4作为前端框架,并详细讲解了Ext JS 4的MVC开发模式。文章将从项目目录结构、相关CSS和JS文件的引用以及MVC框架的整体认识三个方面进行总结。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 深入解析 Lifecycle 的实现原理
    本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ... [详细]
  • 在什么情况下MySQL的可重复读隔离级别会导致幻读现象? ... [详细]
  • 本文通过思维导图的形式,深入解析了大型网站技术架构的核心原理与实际案例。首先,探讨了大型网站架构的演化过程,从单体应用到分布式系统的转变,以及各阶段的关键技术和挑战。接着,详细分析了常见的大型网站架构模式,包括负载均衡、缓存机制、数据库设计等,并结合具体案例进行说明。这些内容不仅有助于理解大型网站的技术实现,还能为实际项目提供宝贵的参考。 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
author-avatar
手浪用户2602925023
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有