第一五七章 几何约束

1963年,I.E. Sutherland在他的 Sketchpad系统中第一个采用了用约束定义物体的方法,此法成为以后约束满足型智能CA方法的先驱。最早对智能CAD的研究使用专家系统的办法。国际上最早研究智能CAD的单位是美国的卡耐基-梅隆大学。著名的人工智能学者H.A.Simon和CAD学者Eastma于20世纪70年代中期带领一批博士研究生研究住宅空间的综合。澳大利亚悉尼大学以J.S.Gero教授为首的Design Computing Unit 从研究工程设计优化方法着手,于20世纪 70 年代末开始转向设计中的人工智能技术。

目前,CAD的研究中存在着三个前沿问题:第一个问题是解决方案的形成,第二个问题是围绕着设计对象、设计知识的表达展开的研究,第三个问题是围绕智能CAD系统的自动作图功能研究,即几何约束求解。

现在陈东风和杨韦就是想要直接挑战智能CAD系统这样的科技前沿,不得不说确实步子迈的有点大。

“昌宏,你说的问题我有思考过,不光是欠约束情况下全参数的方程组求解问题,还有过约束的情况,需要把相同的或者部分重叠的条件进行过滤。其实这个问题归根到底是几何约束求解的问题。这个技术不能说是先进,但是确实是几何引擎成败的关键。我决心要把几何约束的算法融合到几何引擎中。”陈东风坚定的说。

杨辉看着陈东风说:“我看这个问题不用争论了,东风你能把几何约束的算法搞出来,那么皆大欢喜,就看你有没有信心了,不过这种纯数学的问题恐怕我是帮不了你了。不过这段时间我会潜心研究C++和几何引擎的价格,等你计算出几何约束算法从而解决欠(过)约束情况下全参数方程证求解问题,那么我们就立即投入到几何引擎的编程工作中,怎么样?”

杨辉的提议是不是办法的办法,算法这个核心搞出来了,那么就成功了一半自然没有问题。如果陈东风攻克不了这个问题,那么他的提议也就是没有了价值,可能几何引擎这个项目就黄了。

想要理解几何约束求解那么就必须要了解什么是几何体。几何体的定义是一个几何图形中最基本最具有特征的几何元素。例如2维中的点、直线、线段、圆、圆弧和三维中的平面、球面、曲面等。

在几何体的定义上引申出来的几何约束的定义是,两个或多个几何体之间所具有的几何关系。例如点与点之间的距离,直线和直线之间的角度,两条直线垂直,直线与圆相切等。

陈东风自从接过几何约束的问题后,就全心全意的投入到了其中,他首先将几何形式的几何约束进行了分类,不外乎几何形式的几何约束和代数代数形式的几何约束。

几何形式的几何约束包括尺寸约束和拓扑约束。

所谓尺寸约束一般是由用户显式输入的。通常包括两点之间的距离、直线与直线之间的角度、点到直线的距离、半径约束和两条平行直线之间的距离等。

所谓拓扑约束束一般是隐含的,是由系统根据草图自动建立的。通常包括水平约、两条直线平行和垂直、三点共线、两个角相等、两个圆共心等。

根据几何约束中所涉及的几何体的个数,还可以将几何形式的几何约束分为三类。一元约束:只涉及一个几何体的约束。这类几何约束很少见,例如线段的长度就是一个一元约束。

二元约束:涉及到两个几何体的约束,大多数的几何约束属于此类。

多元约束:涉及到两个以上的几何体的约束。例如三点共线,线段的长度相等,角度相等等。

代数形式的几何约束包括方程约束和不等式约束。

方程约束:指以方程的形式给出的几何约束。例如,三角形的面积等于圆的面积。

不等式约束:有时为了表示点在几何图形中的构造顺序时会用到,例如,A<B<C<A表示点A,B,C是以顺时针的顺序构造的。

以上的概念如果总结不出来,那么对于几何约束的求解基本上就是一知半解,或者说求出来也是不严谨的结果。这个就是基础理论的研究,很是花费时间但是没有什么经济效益。

用了一个多月的时间陈东风基于以上的基本概念,总结出几何约束求解的确切定义——给定一个几何体的集合O和一个关于集合O中的几何体之间的几何约束的集合C,那么二元组(O,C)也就是几何约束问题。

几何约束求解的定义清晰后,那么利用解析几何的知识,建立直角坐标系,将所有给定的几何约束转化成一系列表示几何约束的代数方程,方程中的变量表示几何体的独立参数,这样就将一个几何约束问题转化成一个非线性代数方程组的求解问题。然后,用数值计算的方法求解这个方程组,所得到的解就是几何体的位置坐标,即可以构造这个几何图形。这就是陈东风设想的基于数值计算的几何约束求解方法。

先把数值计算方法放到一边,正如唐昌宏对陈东风质疑,在实际过程中不肯能所有的约束条件都是完美的,总有欠约束或者过约束的时候。

要想提高几何约束求解的交互性和准确性必须要进行几何约束求解的定性分析——也就是欠、过和完整约束性的判定问题、参数有效范围的确定问题、多解问题、求解失败的诊断和误差的传播问题等。

陈东风要做的就是给出这样的一个欠/过约束的完整判定算法,然后在分别针对欠约束和过约束进行完善。

对于欠约束的几何约束求解问题,陈东风通过设置几何约束的优先级,给出了如何依据几何约束的优先级添加几何约束的方法,最后计算出了一个将欠约束的几何约束求解问题转化为完整约束的几何约束求解问题的算法。

对于过约束的几何约束求解问题,陈东风首先判定一个过约束的几何约束求解问题是一致性的还是非一致性的,进而针对两种不同类型,分别给出将其转化为完整约束的几何约束问题的方法,并提出了算法。

到了这一步才基本上算是完成了几何引擎中最为关键的几何约束算法,而这个时间也过去了4个月,已经到了1981年的3月份。

第76章 图像数据处理第十一章 大一结束 计划开始第五十章 考试结束 学校颁奖第六十二章 黄院长 威震光机所第九十七章 骊山军演3第十二章预计不足 裹足不前第四十九章 飞龙搁置 备战考试第六十四章 方案研讨 李组折服第五章 初识学霸 犹如神助第六十六章 制导方案 葛森入伙第四十八章 考试优先 飞龙延后第二十九章 试飞大纲 全部完成第七十九章 骊山 黑虎岭第八十八章 开始试射第一一六章 功能测试第一五五章 CAX讨论第四十八章 考试优先 飞龙延后第一五零章 青眼有加第九十三章 侦察演习1第一二七章 支援2第十三章按时而来 聆听建议第一四六章 留学?第一一二章 请君入瓮第三十七章 推销航模 达成协议第一三八章 人才问题第五十八章 飞龙立项 独立负责第一五一章 航模协会第六十一章 飞龙航发 点火实验第四十三章 飞龙初议 设计不易第一五一章 航模协会第二十九章 试飞大纲 全部完成第八十七章 试射准备工作第七十三章 微波信号第五十三章 比例切割 算法初成第七十章 LT-3测试第八十七章 试射准备工作第六十九章 飞龙瘦身 魔改Hong-6第七十五章 黑白鹰眼第一一三章 清点&amp;amp;总结第九十六章 骊山军演2第一三三章 前往鹏城第四十九章 飞龙搁置 备战考试第五十三章 比例切割 算法初成第一百章 军方来了第一三三章 前往鹏城第一零五章 麻栗坡第八十二章 考察飞龙第一四二章 赛前2第六十五章 修改方案第十一章 大一结束 计划开始第一零九章 午夜枪声第一零九章 午夜枪声第一一零章 雨中试飞第一零六章 组装调试第一二八章 兼顾第六十二章 黄院长 威震光机所第一零七章 传音第六十一章 飞龙航发 点火实验第七十一章 鹰眼设计第一二三章 大胜第六十一章 飞龙航发 点火实验第一一四章 风云再起第六十一章 飞龙航发 点火实验第一一八章 序幕第三十六章 内部商议 筹划外销第三十一章 院长带队 奔赴金陵第五十五章 商业天赋 合作深化第一零四章 抵达滇省第四十章 列车卧谈 筹划生产第一三四章 抵达第八章 实习结束 新的开始第一五三章 IBM代理商第一二五章 战后第一三八章 人才问题第五十三章 比例切割 算法初成第一零四章 抵达滇省第六十章 飞龙航发 开始测试第一三六章 新型电机第六十九章 飞龙瘦身 魔改Hong-6第一三七章 设计第一三零章 不轻松的会议2第九十三章 侦察演习1第十四章 疯狂模式 鲸吞虎噬第一一三章 清点&amp;amp;总结第一二七章 支援2第三十四章 赛前准备 惊艳亮相第一五六章 方向第二十章 外形结构 协作完成第九十三章 侦察演习1第一五七章 几何约束第三十七章 推销航模 达成协议第五十一章 返回金陵 明竹归来第十三章按时而来 聆听建议第四十一章 全校合力 远方来电第三章 一语惊醒 砥砺前行第九十六章 骊山军演2第二十七章 院长三招 整机装配第八十二章 考察飞龙第十章 考试周中 计划暑假第三十章 特技设计 飞行训练