假期系列内容预告

09年寒假期间我们准备连载有关ACM的知识,同时将对一些典型例题进行有效解答。由于时间限制,内容仅能尽量拓宽,而很难深入。

Comments

期末周期结束

 刚刚收到了续费通知的邮件…才想起blog已经建立将近一年…

 期末考试昨天结束,今天已经是09考研的第一天。据说英语题很难,抢交大不到10%名额的计科师兄可得顶住了…自己的复习也将于近期开始,计划自然是要周密,况且现在已与三年前有了很大不同…计算机科学对我的吸引已逐渐达到了前所未有的高度…一年时间的复习我将全力以赴。

 最近一直在思考“厚积薄发”的问题,正因为如此更加坚定了“厚积”才能“薄发”。有机会的话,我将利用自己所有具备完整学习能力的时间去积累。钻研的道路上总免不了孤独,但如果它值得去拼搏一生,那又何尝不能做出些许牺牲呢?

NURBS简介

 非均匀有理样条(NURBS)(non uniform rational B-spline),是在计算机图形学中常用的数学模型,用于产生和表示曲线及曲面。

 NURBS的发展始于1950年代,它是由需要像在车体和船壳中使用的自由曲面的数学上的精确表示的工程师们所发现的,它可以在任何技术上需要的时候精确的复制出来。以前这类曲面的表示只存在于设计者创建的实体模型。该发展的先驱包括:皮埃尔·贝兹(Pierre Bézier), 他曾是Renault的工程师,以及Paul de Casteljau,他在Peugeot工作,两个都是法国的。贝兹基本是和de Casteljau独立发展的,两人互相不知道对方的工作。但是因为贝兹发表了他的工作的结果,今天的一般的计算机图形学用户认为样条 – 通过在曲线上的控制点表示的那类 - 为贝兹样条,而de Casteljau的名字仅作为他为计算参数化曲面所设计的算法而为人所知。在1960年代,人们认识到非均匀有理基本样条是贝兹曲线的一个推广,而贝兹曲线可以视为均匀非有理B样条。

最初NURBS仅用于汽车公司私有的计算机辅助设计包。后来它们成为标准计算机图形包的一部分,包括OpenGL图形库。

NURBS曲线和曲面的实时、交互绘制最初由Silicon Graphics工作站于1989年提供。在1993年,CAS Berlin(一个和柏林工大合作的小创业公司)开发了第一个个人机上的交互式NURBS建模器,称为NöRBS。今天多数台式机上的专业计算机图形应用程序提供NURBS技术,一般通过集成一个从专用公司来的NURBS引擎。

NURBS对于计算机辅助设计、制造和工程(CAD,CAM,CAE)是几乎无法回避的,并且是很多业界广泛采用的标准的一部分,例如IGES, STEP,和PHIGS。

但还是有很多它们在交互式建模中的优点和有用性的错误观念,主要是由于关于单一软件包及其用户界面的易用性而得出的猜测。 通常,据说编辑NURBS曲线和曲面是高度直观和可预测的。控制点总是直接连接到曲线或曲面上或象是通过一根橡皮筋连接。根据用户界面的类型,编辑可以通过它们各自的控制点实现,这对于贝兹曲线是最显然和最一般的,或者也可以通过高层的工具,例如样条建模或者层次结构的编辑。高层工具可以设计得很强大,并得益于NURBS创建和建立不同层次的连续性的能力: c0连续性表示连通性,c1连续性可以视为没有尖角,而c2连续性通常称为几何连续性,视觉上也就是“光滑”的东西,用NURBS还可以达到更高阶的连续性,它们可以导致”亮度连续性”。这被新车模型的摄影师所倚重,他们热衷于展示霓虹灯在车身上的镜像。灯光可以展示出完美的光滑度,这在没有NURBS的情况下实际上是不可能。

一条NURBS曲线用一个带比重控制点和曲线的次序以及一个节点向量的集合定义。NURBS是B-样条和贝兹曲线和曲面两者的推广,其主要差别在于控制点的比重,这使它们成为有理的(非有理B-样条是有理B-样条的特殊情形)。 NURBS曲线在一个参数方向上演变,通常内部用’s’参数代表,而NURBS曲面在两个参数方向上演变。 所以,通过计算NURBS曲线的s-参数,它可以在三维空间中表示,通过计算NURBS曲面的s和t它也可以在三维空间中表示。 推广意味着:一条贝兹曲线总是一条NURBS曲线,就像狗总是动物。反过来则不总是成立,一条NURBS曲线可以是一条贝兹曲线,就像一个动物可以是一条狗。

NURBS有用的原因有很多条:他们

在仿射变换下不变也在投影变换下不变; 提供了标准解析形体(例如圆锥曲面)和自由曲面两者的共同数学形式; 提供了设计一大类形体的灵活性; 减少了存储形体的内存消耗(和更简单的方法相比); 可以用数值上稳定和精确的算法较快的计算; 是非有理B-样条和非有理和有理贝兹曲线和曲面的推广。 节点向量是一个参数值的序列,用于决定控制点在何处和如何影响NURBS曲线。节点的个数总是等于控制点的个数加上曲线的阶数。节点必须只是用于内部计算,因而一般对于软件的终端用户来说是没有帮助的、不可编辑、甚至不可以见的。

节点向量的值必须升序:下面的向量是正确的:[0 0 1 2 3],而接下来这个不是:[0 0 2 1 3]。也要注意唯一重要的因素是值之间的比例:节点向量[0 0 1 2 3],[0 0 2 4 6]和[1 1 2 3 4]产生相同的曲线。不可以有比曲线的度数更多的重合值:节点的重复度≤度数。 对于一阶NURBS,每个节点和一个控制点结对。

曲线的序大于或等于2,对应与一条线性曲线(序=2,表示一条直线),一条二次曲线(序=3)以及一条三次曲线(序=4)。数学上曲线用同阶的多项式表示,一条三次曲线用3阶多项式表示,其序为4。另外,控制点的个数必须等于或大于曲线的序。实践上,3阶的三次类型是表示曲线和曲面时最常用的。而4次或5次的有时候有用,特别是用于导数,更高阶实际上从来不用因为他们经常导致内部数值问题并趋向于消耗更多的不必要的计算。

非有理曲线有时不够用,例如用于表示圆。 这是表示一个XY平面上的均匀的圆的控制点,第四个参数是比重:    cp_circle[0] = Controlpoint( 1、 0、0、     1);    cp_circle[1] = Controlpoint( 1、 1、0、sqrt(2) / 2.0);    cp_circle[2] = Controlpoint( 0、 1、0、     1);    cp_circle[3] = Controlpoint(-1、 1、0、sqrt(2) / 2.0);    cp_circle[4] = Controlpoint(-1、 0、0、     1);    cp_circle[5] = Controlpoint(-1、-1、0、sqrt(2) / 2.0);    cp_circle[6] = Controlpoint( 0、-1、0、     1);    cp_circle[7] = Controlpoint( 1、-1、0、sqrt(2) / 2.0);    cp_circle[8] = Controlpoint( 1、 0、0、     1);

ps:thanks for wikipedia&university of bristol.

评论突破3600…即日起暂闭清理…

Comments

进入期末周期

年底总是很忙,粗算一下也要考7、8门课程。还好过了元月初就放假回家,届时会开出所有的考研书目以及算法书。可以预见,09年会是一个在pm上被看作是milestone的东西。

另本站近期评论数目暴增…初步认定来源于海外的web2.0网络广告组织…当该数字达到一定限度且被认为影响了数据库的正常运作时,我们会立即删除所有评论内容,并在短时间内关闭游客评论。

Comments

SCCS重构版发布~诚邀bug测试、开发建议

值得欣慰的是,“基于web的程序语言智能学习系统”在今晚赶回家后2小时内完成了internet正式发布前的准备工作,我们可能会选择较有代表性的设计文档在近期予以公布。

整个系统由于限制工期短(整整1个月),且由于并没有占用课内学时,因而实际的开发时间估计也比较可怜。整体完成度达到了预期的50%,但美工方面真正做起来的时候才觉得很难…数据库设计方面还存在一定问题,整体安全性上未作过多考量,一些无关正常使用的bug还是比较明显,但相较于7月份的版本,我们至少在以下几个方面取得突破:

1、首次尝试独立创建模版网页,尽管参考了everydns,但仅限于视觉上的借鉴,css代码完全独立编写。

2、首次以较全面的数据库设计流程完成了初步设计,但问题很多,成品还存在一些问题,这些已经可以在今后的设计阶段中被当作宝贵的经验。

3、首次全面接触javascript和xml技术,即Ajax。初步了解了主流网站系统的Ajax应用方法,此类部分的源代码可在今后得以沿用,该方向的前景是用面向对象的方法对已成熟的技术进行重构,方便复用。

4、使用php初步完成了迄今为止最大的网站项目,目前的数据字典已经覆盖C++/C近七百条库函数,已具备实用意义。

5、在对较大规模数据库的系统中使用查询优化工作,这是数据库设计方面的范畴,同时对本系统的真正实现也具有重大意义。

注:本文以后的SCCS将不再作为本系统的英文缩写,按正式名称取开头字母则为”wiplls”,这将是本系统的新名称,在今后可能的技术更新中将统一使用该名称。

系统的唯一入口地址为:

http://www.hanyi.name/code

待beta成熟后将全面取代原有版本,并启用code.hanyi.name的独立二级域名。

ps:同时也提前宣传一下

&怀念

Comments

SCCS第一阶段重构完成,推迟发布beta

原因是教育网连ftp实在是太煎熬了,故等下周找时间回家去传。周五找老师验收,给了满分,不过感觉和理想中的东西还差很远,cet6临近,先把其他放一放了。

Comments

回家逛逛

期中考试打乱了部分项目计划,不过由于前期进展较快,目前的进度还算正常,下周就可以发布beta版本了。

按照昭哥的意思,这个php项目结束后我们将转而实现一个mfc应用,并将其作为pm的课程实训,当然还是必须得有自己的东西。这学期就这些内容了。

Comments

惨啊惨

 又是这季,去年被黑了1k多,今年同一时间又被黑了…摸摸口袋还有1块6毛5,基本上是楼下那个黑超市老头给找的零,还好饭卡在…不愁一周吃喝…不过仔细想想,还真是太惨了,周末还得赶紧回家去银行办正式挂失,然后又是一个礼拜的冷却期,实在是…细细算下已经丢过1个书包、2个钱包、1只手机,晕死…咋都欺负老实人么…

Comments

开发中的SCCS

正赶上期中考试…不过项目貌似必须在17号以前完成。目前的想法是,扩展系统的数据管理功能(谁让这是数据库课程设计啊),除了强大的数据库设计作后盾外,我们还需要用到Ajax实现现代网站的一些基础应用,因此系统更名为“基于web的程序语言智能学习系统”,预计下周内将完成框架内容的80%以上。

Comments

SCCS重构启动

本学期的数据库项目刚刚发布,主流还是传统pb9.0+sqlserver的c/s开发,处于前沿的m.p studio无论如何也不能再去啃旧东西,恰好碰到sccs重整旗鼓,另外css和javascript的学习又刚好缺少实践,于是决定用一个月的时间来重构sccs,新的名称将是”Internet库函数采集系统”,遗憾的是原数据库由于兼容性不能继续沿用,新的系统将采用全新的设计,力争增加易用性、功能性。风格设计参考了国外一些著名网站的思路,但远不能称得上华丽。

Comments