搜索标题
最新评论
- cyt5wed7u
- 相当不错的东西哦~ 不过,后面的呢?
- 怎么没写完
- 你好 ,你的文章很精彩, 我这里有个问题想...
- 说的很直白,很容易理解,谢谢!
- hao
- 谢谢!有时间会弄的
- 建议增加准星,屏幕移动,另外敌机的速度...
- Oh ..Good! 发觉此地是宝...
- wo de ai
- 敬佩!改天有问题向你请教还望不吝赐教!...
- 指教不敢当,互相学习
- 我有学计算机 编程 的,希望以后多多 指...
- 确实没什么意思,现有技术能实现,干嘛用...
- 没什么意义
- 刚开始不会玩,久了就会了,不是很难
- 刚开始不会玩,久了就会了,不是很难
- 我会玩了 昨天我没有动鼠标 我以为是键盘...
- 偶像啊~!
- 我看了 但是我不会玩
统计信息
- 访问量: 11717
- 日志数: 107
- flash数: 1
- 图片数: 11
- 书签数: 20
- 建立时间: 2007-10-06
- 更新时间: 2008-05-09
我的最新日志
-
de Castaljau 算法(转)
2008-2-26
de Castaljau 算法
贝塞尔曲线德卡斯特里奥(de Casteljau)算法及程序
设P0、P02、P2是一条抛物线上顺序三个不同的点。过P0和P2点的两切线交于P1点,在P02点的切线交P0P1和P2P1于P01和P11,则如下比例成立:
这是所谓抛物线的三切线定理。
当t从0变到1时,它表示了由三顶点P0、P1、P2三点定义的一条二次Bezier曲线。并且表明:这二次Bezier曲线P02可以定义为分别由前两个顶点(P0,P1)和后两个顶点(P1,P2)决定的一次Bezier曲线的线性组合。依次类推,由四个控制点定义的三次Bezier曲线P03可被定义为分别由(P0,P1,P2)和(P1,P2,P3)确定的二条二次Bezier曲线的线性组合,由(n+1)个控制点Pi(i=0,1,...,n)定义的n次Bezier曲线P0n可被定义为分别由前、后n个控制点定义的两条(n-1)次Bezier曲线P0n-1与P1n-1的线性组合:

由此得到Bezier曲线的递推计算公式
这就是de Casteljau算法;__________________________________
|下面网址 有关计算机图形学网上教程 |
| 北京大学信息科学学院本科生课程 |
| http://graphics.pku.edu.cn/courses/CG/ |
| |
| |
| http://www.lnnu.edu.cn/xdjyjx/tuxing/ |
|_________________________________ |代码如下:
/*************
* pDC 设备
* flArrayx 组成点x坐标序列
* flArrayy 组成点y坐标序列
**************/
int deCasteljau(CDC *pDC,CArray<float,float>& flArrayx,CArray<float,float>& flArrayy)
{
if(flArrayx.GetSize()!=flArrayy.GetSize())
return 0;
float *pflX,*pflY;
float flTempx,flTempy,flU;//flu-------u参数(和上面t表示意思相同)
int i,n,j;
n=flArrayx.GetSize();
if(n<2) return 0;
pflX=new float[n];
pflY=new float[n];
flTempx=flArrayx.GetAt(0);
flTempy=flArrayy.GetAt(0);
for(i=0;i<n;i++){
pflX[i]=flArrayx.GetAt(i);
pflY[i]=flArrayy.GetAt(i);
}
for(flU=0;flU<=1;flU+=0.05/n){
for(i=1;i<n;i++){
for(j=0;j<n-i;j++){
pflX[j]=(1-flU)*pflX[j]+flU*pflX[j+1];
pflY[j]=(1-flU)*pflY[j]+flU*pflY[j+1];
}
}
pDC->MoveTo(flTempx,flTempy);
pDC->LineTo(pflX[0],pflY[0]);
flTempx=pflX[0];
flTempy=pflY[0];
}
delete[] pflX;
delete[] pflY;
return 1;
}
-
吴咸中 古方破重症
2008-1-12
央视国际 www.cctv.com 2007年07月21日 18:23 来源:CCTV.com
开场白:半个世纪前,毛主席曾经提出过一个设想:要把建国以前势不两立、水火不容的中医和西医结合在一起,形成一门新的医学。面对这个前人从未走过的道路,很多人退缩了。但是有一位老人,他用了一生的时间努力在中医和西医之间寻找一条和谐的发展之路。
解说:天津市南开医院,表面看起有些普通,但俗话说,山不在高,有仙则灵。这里的“神仙”就是今年83岁高龄的中国工程院院士——吴咸中。在近五十年的时间里,他采用中西医结合的方法,在治疗腹部疾病方面闻名海内外,是我国中西医结合事业的开拓者之一。
吴咸中:肠子响吗?
患者:响。
吴咸中:响,有没有时候一出虚恭就见好啊?
患者:对。
吴咸中:就感觉着是连串出几个虚恭啊,还是蹦蹦哒哒的放几个屁啊?
患者:对对对。
吴咸中:蹦蹦哒哒。
解说:吴咸中院士的工作时间遵循着他的吴氏口诀:“一年当两年,一日三单元、假日干半天”,在进入八十岁之后,吴老才改为半日制工作。
在吴咸中家里最显要的位置,摆放着一张极为珍贵的照片,那是1976年周总理的医疗组成员向总理告别的场面。在医疗组里,吴咸中是唯一一个中西医结合专业的医生,他也是在总理生命的最后时刻,被突然叫到北京的。
吴咸中:连衣服都没换,穿的还是那个条绒,那样的老破棉鞋就去了。接了去我一看,这个地方我没来过,北海那儿。305医院那是给高级领导干部专门准备的,那儿有大量的房子,是警卫人员、医务人员、 家属住的。其中有几套,三大间的套房,总理住的大套房,有这两三个屋这么大。吴阶平就给我介绍情况,这才知道是这么回事。
主持人:那时候还一直不知道是给总理看病?
吴咸中:不知道是给总理看病。哎呀,这一见总理啊,就像那个恩格斯的那个照片一样,就胡子老长,瘦得真是很可怜。我一听,这肚子肠鸣音挺高。
主持人:当时请您去解决的问题?
吴咸中:主要也是总理,就是肠梗阻。我是治急腹症,急腹症。
解说:总理在患肝癌的晚期,被肠梗阻折磨得几天无法排泄,医疗队中虽然不乏名医,但始终没能解决问题,而中西医结合治疗急腹症正是吴咸中的绝活。急腹症是指急性肠梗阻、阑尾炎、胃穿孔等疾病,早在1971年的全国中西医结合会议上,吴咸中就被树为典型。正是在那次会议上,总理亲自向他询问了治疗急腹症的经验。
吴咸中:总理非常感兴趣,他就问我你们能治哪几种病,胰腺炎你们治过没有?你会不会开方子?我说能开。你们推广得怎么样?我说有推广,但是推广得还不够。他说那不是你们保守,是还没有实行推广。完了还问我一些事,反正问我我都能答出来,因为这个都是我做的事情。
解说:1971年,全国的中西医结合事业正处在最低潮期,由于文革的破坏,很多专业医院被解散,医生遭批斗,是总理力挽狂澜使中西医结合起死回生。让吴咸中没想到的是,事隔五年后,自己竟然有机会能用中西医结合为总理减轻痛苦,这让他异常激动。就在见到总理的当天晚上,他就开了一张方子。
吴咸中:就像小承气汤一样,有点大黄、厚朴、枳实,还有点行气的药。头一天晚上没解决问题,第二天早晨邓大姐就来了。她就跟我们说,你们不要以为他是总理就不敢下药,他这个病,时间比较长了,你们琢磨琢磨,怎么样再加强点力量。她是首长的家属里面最好的,她从来不跟医生发脾气。
主持人:她刚才说您不要因为是首长就不敢下药。当时您开方子的时候的确有这样的压力吗?
吴咸中:当然有压力了,的确不敢下,不敢下药。当时哪敢上什么大黄、甘遂这类药呀!不敢上,就怕吃不了。
解说:大黄、甘遂都是作用剧烈的下药,尤其甘遂,在中药里攻下作用最为猛烈,一般医生轻易不敢用。
吴咸中:既然有这个话呢,头一回也没奏效,所以第二天我就把我们拿手的拿去了。大黄、厚朴、枳实,还加上甘遂,同时也先给点油,还打穴位注射,新斯的明。这一下就行了,一拉拉了多半盆,那个警卫员就高兴得不得了。但是他不知道,下来一回行啊,你完全永久解决他这个肠梗阻是不可能的。第二天,小平同志来了,这个邓大姐挺高兴。她说小平同志,吴大夫给开的这个药通里攻下,通了。吴大夫,你往他旁边坐坐,小平同志有点耳朵聋。我就往旁边凑凑。你们用通里攻下,这个很好,这个经验应当总结总结。完了这18天,就用这个办法来维持 。两三天一次,两三天一次。
主持人:但实际上说明那个时候总理的这个肠胃的机能已经不行了?
吴咸中:他那个都一锅粥了,都是。
主持人:全靠那个药物来维持。
吴咸中:维持,维持呢。反正这一拉呢,他肠子里蠕动了,蠕动他也得有点疼。后来就是用通里攻下,效果就不像开始那么好了,就做手术 。那天晚上做的手术,到了第二天早晨才回病房,到病房就不行了。
解说:这些照片是总理去世后,邓颖超专门寄给吴咸中作为留念的。在吴咸中的书房里,也挂着一张他最喜欢的总理的照片。尽管只见到总理十八天,但是每当想起总理对于中西医结合事业的肯定和鼓励,这都成为他日后在工作上克服一切困难的最大动力。
2007年5月10日,这一天,吴咸中院士要带我们去一个特别的地方,那里曾经改变了他一生的命运。
吴咸中:背着行李进来,一住校就是一年下去了。但是,从专业方面就发生了一个变化。
解说:这里就是当年吴咸中学习中西医结合的地方,尽管经过七十年代的地震已经变了样子,但在半个世纪以前,这里曾经见证了中西医结合的一段重要历史。
1958年11月,《人民日报》发表了一篇社论,题为“大力开展西医学习中医运动”,这篇社论是配合毛主席的“1011”批示而来的。1011批示是毛主席关于卫生领域的一个极为重要的指示,他亲笔写到,“有条件的省市都应该办一个70到80人的西医离职学习中医的学习班,以两年为期,这样,全国大约就可以有二千名中西医结合的高级医生。”主席在批示中还特别强调,“其中可能出几名高明的理论家”。
主持人:这个毛主席的批示当中他讲得很具体,他说两年的时间大概有一两千名西学中的医生出来。他说如果好的话呢,其中或许还会出几个高明的理论家。您对这个高明的理论家怎么看呢?
主持人:我想高明理论家应该是他对中医真正有所了解。过去往往是有一些人对中医不了解或者一知半解,攻其一点不及其余,所以要想这个中西医能够团结合作,双方面都要采取兼容的态度。
主持人:这也说明其实毛主席当时也心里很清楚,中医的理论体系和西医的理论体系是完全不同的两个体系,所以也许解决中西医和谐发展的问题恐怕要有一个新的理论或者一个新的认识方式来解决这样一个矛盾。
吴咸中:他早年很希望中医和西医结合在一起,再利用现代科学来作为后盾,能够促进中国医学形成有特色的医学。
解说:自从西医进入中国以来,中医和西医之间就爆发出无数次的争吵和辩论。尤其建国初发生的考试取缔中医案,更让中西医之间水火不相容。正是在这种背景下,毛主席首次提出了让西医学习中医。
陈十奎:当时认为中医是不科学的、是封建医学,那在这种情况下毛主席他就认为得让西医认识中医,好好地向中医学习。你还没认识它怎么能反对它呢!当时,所以毛泽东就极力提倡西医学习中医。
解说:为了实现主席的这个设想,各省市的卫生部门挑选了最优秀的青年西医学习中医,天津医科大学总医院推荐的就是吴咸中。两年的时间,吴咸中系统学习了中医最为经典的《内经》、《伤寒论》等经典著作,毕业时他的成绩在全班95名同学中名列第一。学成回到医院后,信心十足的吴咸中决定在急腹症上一试身手,可让他没有想到的是,总医院外科高手云集,用中医和针灸这种从未尝试过的方式治疗急腹症,又谈何容易?
主持人:您还记得一开始阻力有多大?
吴咸中:我那边正在观察病人呢,另外一个大夫敲打敲打、摸摸弄弄,完了就拉手术室做手术去了。
主持人:拉走了?
吴咸中:那你说你跟他说什么呢?
主持人:您观察了一半病人他给拉走了?
吴咸中:就拉走了。
主持人:大家还要抢病人?
吴咸中:那就是抢。那个时代,这个外科大夫有一个观点,就说外科大夫就是做手术的,你要不做手术你到别处住去。甚至一位大夫,这个事在县医院能看见,就是那个年代的县医院煎药都是病人家属,在外面窗户底下支个火煎药,他一脚把这个药锅子踢了。
主持人:你来我这儿煎什么药?
吴咸中:你煎什么药,来这儿就是做手术,这个事是非常有代表性。
主持人:代表了当时的一种一定是手术万能的观念。
吴咸中:所以那时候评论人也就是说,谁叫张一刀、李一刀、王一刀,这是好,是正面的。你一个新的治疗方法,西医的拿来很快就普及,你这个普及非手术疗法是挺难的。
解说:非手术疗法难普及的一个重要原因就是——费时费力。这是吴咸中制定的溃疡急性穿孔的非手术治疗方案。他先要结合患者不同的发病时间用西医的方法进行诊断,然后再根据不同阶段表现出来的病理特点进行治疗。这种方法虽然麻烦,但是却能集中西医两家之长。
陈十奎:因为急腹症,它是一个广义的概念。它里面包括不同的病,像溃疡病、穿孔、出血是急腹症,急性肠梗阻单纯靠中医它鉴别不出来,得靠西医来诊断。在西医诊断明确的基础上,我们再配合中医中药的治疗,这叫中西医结合。
解说:急腹症发病急变化快,用中药治疗就得勤观察,彻夜不眠是吴咸中的家常便饭,但是通过观察他逐渐发现,用中药治疗急腹症,患者不仅恢复得非常快,还能减少术后的并发症。非手术疗法的这个绝对优势,很快让吴咸中在一次与大牌专家的会诊中露了一把脸。
吴咸中:广东,广州一个市委书记结肠癌,做了手术。手术完了前几天很好,到六七天以后就肚子胀,肚子胀得很厉害。当时广州的医疗水平并不太高,讨论起来这各家意见不一致。有的说得马上做手术,有的说得做人工肛门,莫衷一是。给做手术的这个老大夫是很有名的,弄得也挺狼狈。我到那一看,根据我的观察,我说这个病人不是肠梗阻,可能是吻合口有露的地方,肠子里气都跑到腹腔了,就气腹了,但是没有腹膜炎,没有腹膜炎。我说把这个气穿出来,随后就按照溃疡病穿孔的办法给他治,很可能他能避免手术能把病治好。当时听的人也都听得有的半信半疑,我跟随从我一起去的罗大夫,我说你们要同意,咱们马上做一个穿刺。这针一穿刺,这气一下就出来了,肚子就下来了。这都想怎么这他想到,我们怎么想不到?瘪下去以后,就把他这个肚子给他压一压。因为我判断吻合口的破裂是一个小的,经过这个压迫,再按溃疡病穿孔针灸,都给他看了以后,再过几天就好了,好了。好了, 过了一年,这位书记叫罗范群,模范的范,到天津来看我,挺好。完了就出个笑话,那个时候在半溪酒家请我们几个吃饭,是警卫森严 ,不知道怎么回事。我说,警卫森严,不知道怎么回事,结果就是几个郎中。
解说:让吴咸中露脸的灵丹妙药是《伤寒论》中的通里攻下法,通里攻下就是调整肠道蠕动,促进排泄。在西医精确诊断的基础上,用中药治疗单纯性的肠梗阻、阑尾炎、溃疡穿孔等,百分之七八十的患者都可以免受开刀之苦。而急腹症一经诊断立即手术,这以往都是写进教科书中的金科玉律。吴咸中通过自己的努力,改变了中医只是慢郎中、只能治慢性病的传统观念。
陈十奎:中医中药学确实是个伟大的宝库,在急腹症、在外科的急症当中都可以用中医方法治疗。这对中医伟大宝库的继承发扬的一个思想认识,特别对中西医结合的认识问题有非常重大的影响。
解说:两年来吴咸中治愈了上千例的患者,在吴咸中名气大增的同时,也让他即将面临一个两难的选择。1963年,天津市要建立全国第一个中西医结合试点医院,基地选在了南开,院长的第一人选就是吴咸中,有了专业医院,这看似是个好事,但是与吴咸中所在总医院相比,当时的南开只相当于一个卫生所的规模。
王兴民:总医院是全国有名的大医院,外科的力量也非常强。可是(当时的)南开医院呢,规模比总医院要小得多,当时的手术水平有人讲它叫做阑尾炎大院,水平相对要低得多。
吴咸中:那为什么到这个小医院来?这个小医院阻力比较小。
主持人:阻力小的原因是什么?
吴咸中:就是它没有什么太大的大夫,太老的大夫。
主持人:大牌医生。
吴咸中:那个时候卫生局也考虑,就是没有专家挡道。
主持人:当时调您过来的时候您怎么想?
吴咸中:我想坚持中西医结合,也需要点党性,也需要点历史责任感,也需要点科学态度,因为完全靠个人对技术的爱好解决不了问题。如果你认为这个事是一个科学的事情,你应当不管你目前你处的地位是有利的、不利的,都应当为发展这个科学而做出自己的努力。
解说:像当年放弃外科毫不犹豫的去学中医一样,吴咸中再次做出让很多人惋惜的选择,但1966年的文革一开始,作为院长的他第一个遭到批斗。这是吴咸中从牛棚放出来之后的全家合影,此时的他面带愁容,眼看着自己亲手创建的中西医结合事业在刚刚长大时就面临死亡,这一切让他心灰意冷。就在吴咸中被闲置了4、5年之后,1971年,他突然接到了一个让他兴奋不已的消息,他被树为全国的中西医结合典型,尤其周总理的接见,成了恢复中西医结合的护身符。
吴咸中:1971年1月6号接见的。回来,我这身价就高了。所有的成果,被肯定的这些成果都要新华社派人和当地的官员一起到医院去开座谈会,找病人开座谈会了解情况,完了写出报告。对于肯定的典型由卫生部组织办学习班进行推广,这都是总理亲自讲的。
主持人:当时您这边中西医结合治疗急腹症就是属于被肯定的一个?
吴咸中:就是了。因为那时候对我的攻击是最后一轮了,后来我就找了新华社的记者了,因为他住的离我那不太远。我说都要办学习班了,食堂里边大字报还那么多呢,人家敢来参加学习班吗!后来他说不行,我给你找去。大概他找了,把那个都扯掉了。
解说:吴咸中先后举办了11期学习班,为全国培养了上千名技术骨干;这些治疗急腹症的书就是那个时候出版的,这本蓝色的小册子发行了上百万册,当时农村治疗急腹症靠的就是它;人民日报还在头版头条对南开医院的经验专门进行了报道。闯过了文革一关,吴咸中原本以为中西医结合事业将更好的发展,但进入八十年代,中西医结合的命运再次受到震荡。
1980年,卫生部召开全国中医与中西医结合工作会议,会议首次明确,“中西医结合开始作为与中医、西医并列的一支力量。”也就是说,过了那么多年没有名分的日子,中西医结合终于在医学界有了一席之地。但是面对这个消息,吴咸中感到的却是担忧。
吴咸中:实际上,这个中西医结合这个力量,原来或者在中医,依附在中医身上,或者依附在西医身上。1980年的会议以后,特别是衡阳会议以后,西医可以不搞中西医结合了。可是解放了,不讲究说什么非得西医学中医了。中医呢 说我们可以独立了,用不着你们。所以有些个中医学院就明确跟西学中说你要留我们欢迎,你要走我们欢送。
主持人:就意味着中西医结合这支力量一下子被孤立了。
吴咸中:孤立了。人家中医也可以不要你,西医也可以不要你,实际结果就是这么个结果。
主持人:有人说,有一个比喻说是叫第六指,什么意思呢?
吴咸中:第六指就是多余的。
主持人:多余的。
吴咸中:你有五个指头这不是正常,你要多长了一个指头那不是多余的。
主持人:这个您是听到了这种说法,这种说法不少。还有就是很多搞中西医结合的人从中医出来了,或者原来是当院长的被免职了都换成中医的了。
解说:这个调研报告是吴咸中在1980年的那次会议之后撰写的,为了调查中西医结合的现状,他走访了全国十几个省市的数十家中西医结合机构,报告中他提出了一句颇具分量的话,这句话不仅为面临危机的中西医结合指出了方向,也为政府部门解了围。
田景福:他说我们三支力量应该搞成海陆空协同作战,我们不能搞魏蜀吴三足鼎立。这样三支力量我们拧成一股绳,这是为老百姓造福。所以在这个文章出来以后,我当时是卫生部中医司的司长,解决我们面临的一些矛盾给我们极大的帮助,这就说明了他心胸相当宽。
解说:吴咸中的自信来自于中西医结合事业的不断壮大,经过了二十多年的努力,中西医结合已经得到了国际认可,1982年世界卫生组织公布中国在世界领先的五项医药学项目,中西医结合治疗急腹症与针刺麻醉、中西医结合治疗骨折、断肢再植、烧伤等五项医学项目并列其中。但这些并不能让吴咸中感到满足,他在思考的是,中西医结合能否能解决更疑难的疾病。2005年,南开医院接诊了一位患急性重症胰腺炎的病人,急性重症胰腺炎被医学界称为不治之症。
-
新片《盗走达芬奇》
2008-1-11
-
探秘澄江化石群
2008-1-11

抚仙湖虫
奇虾5.3亿年前的生命至今栩栩如生———
地球的“年龄”大约有46亿年。寒武纪是距今5.4亿至5.1亿年的时间段。比我们较熟悉的恐龙时代的“侏罗纪”早4亿年。1909年,在加拿大发现的寒武纪中期的布尔吉斯动物化石群轰动了世界,如今这个化石群已被联合国列为科学遗址。1947年,在澳大利亚又发现了前寒武纪末期的埃迪卡拉动物化石群。这两个化石群的时间间隔有1.1亿年,两物种间发生的突发性变化难以在实物上得到证明。而澄江动物化石群正好处在以上两个化石群时间跨度上的中间,是寒武纪生命大爆发的最重要的环节。
云南澄江生物化石群发现始末。
也许,世界上没有一处古生物化石群的发现过程,能如云南澄江生物化石群这般传奇。
1984年6月中旬,刚刚从中国科学院南京古生物所硕士毕业的侯先光,来到云南澄江县的帽天山,寻找曾经生存于寒武纪的高肌虫化石。他住在野外地质勘查工作人员的工棚里,天天早出晚归,爬过崎岖的山路,到选点搜寻古生物化石,每日劈下的石头常常有两三吨重,然而,艰苦的工作并没有得来想要的收获,工作了一个多星期,却依然两手空空,侯先光不免有些失望。
7月1日下午3点左右,正在紧张发掘的侯先光一抬脚,鞋跟不慎剐落了一片松动的岩层,一块形状奇特却又保存完整的化石露了出来,欣喜若狂的他用自己所学的知识判断,这是一块寒武纪早期的无脊椎动物化石。他再接再厉,当天就发现了三块重要化石,后来进一步鉴定发现,发现的分别是纳罗虫、腮虾虫和尖峰虫化石。
如同打开了一扇古生物宝藏的大门,此后的数天里,侯先光陆续发现了节肢动物、水母、蠕虫等许许多多同时期的古生物化石。返回南京后,他与导师张文堂教授,撰写了《纳罗虫在亚洲大陆的发现》,并在论文中将澄江的动物化石定名为“澄江动物群”。
此后,在帽天山,诸多科学家们从未见过的奇特古生物陆续重见天日。中科院南京古生物所陈均远教授、西北大学舒德干教授等人陆续加入研究行列,一系列发表在《自然》、《科学》等国际权威学术刊物上的文章,向全世界描述了在5.3亿年前的寒武纪,地球生命曾在云南澄江集体爆发的壮观场景。
1992年,澄江动物化石群遗址被联合国教科文组织列为“全球地址遗迹东亚优先甲等第四号”。2005年11月底,澄江化石群申报世界遗产的申请正式上报建设部。
记者探访澄江动物化石群博物馆。
2005年岁末,记者专程来到当年化石的发现地———云南澄江帽天山探访,云南省古生物重点实验室学术委员、澄江动物化石群博物馆陈爱林馆长,和记者讲起当年化石发现的过程依旧不胜感慨。
据陈馆长介绍,经历22年的不懈研究,古生物学界在澄江共发现180多种动物,其中80%都是前所未知的新种,还有20多种痕迹化石和粪便化石。几乎现生动物的所有门类,都能在澄江化石群里找到它们的远祖代表,而人的“老祖宗”———云南虫,更是首次在澄江发现。
古生物学研究表明,从地球生命出现到今天已经38亿年,但在距今5.4亿年前的寒武纪之前,生命只是以藻类和菌类的简单形式存在于海洋里。寒武纪之后,大量后生动物突然在海洋里出现,从单细胞藻类、菌类到多细胞后生动物演化特别快,只用了1000多万年,澄江动物群记录了这段特殊时期生物群的全貌。“和38亿年相比,1000万年相当于一昼夜中的一分钟,科学家把生命快速进化例子叫做生命大爆发。”陈馆长解释说。
曾经有专家认为,澄江动物群的发现挑战了进化论。生命的大爆发是否和达尔文的进化论相矛盾呢?
“达尔文在他的时代由于研究条件的限制,对生物演化的历史了解并不是很全面,他认为进化应该是慢速进化。所以,当科学家发现在寒武纪突然出现的三叶虫时,便认为可能会动摇进化论的基础。在当时的社会环境,如果谁提出快速进化,就被认为是神创论。”
“进入20世纪以来,大量的科学证据表明,进化应该是个快速的过程,澄江动物群就很典型。不过,科学家对澄江动物群的研究成果,只是对达尔文的渐变论做了修正,并非是挑战,因为即使是1000万年也并不是很短的时间。”
来到澄江化石博物馆,陈馆长向记者集中展示了陈均远教授近年来对化石复原的最新成果,那些曾经仅仅停留在化石标本中的逝去个体,那片早已在地质变化中消散的5.3亿年前的海洋全景图,鲜活地出现在记者的面前,各种生物奇特的姿态、斑斓的色彩让人称奇。陈馆长介绍了这些神奇生物的特点和重要意义。
昆虫远祖 抚仙湖虫
抚仙湖虫是澄江动物群中特有的化石,属于真节肢动物中比较原始的类型,成虫体长10厘米,有31个体节,外骨骼分为头、胸、腹三部分,它的背、腹分节数目不一致,与泥盆纪直虾类化石类似,而直虾是现代昆虫的祖先,这间接表明了抚仙湖虫是昆虫的远祖。侯先光还发现,抚仙湖虫消化道充满泥沙,这表明它是食泥的动物。
九眼精灵 微网虫
微网虫属于叶足动物门,因身上多边形的鳞状骨片而得名,体长可达8厘米,具有9对矿化骨片和10对足,这些骨片起到连接腿和关节的作用,目前只有在澄江才发现有这种生物完整的化石。
有专家认为,这些骨片是一种繁殖后代用的储卵器,不过参照现代节肢动物繁殖器官多集中在一个部位的特点,储卵器不可能这样分散。也有专家认为,这些骨片是具有感光作用的多眼,所以有了“九眼精灵”的美称。不过动物的眼睛一般集中在头部,和微网虫类似的生物在地球上还没有找到。
微网虫曾登在《自然》杂志封面上,成为化石明星。《纽约时报》曾经这样评论微网虫:“一些寒武纪生物很容易就扮演科幻小说里的角色,最奇怪的家伙就是一种身上长着10对足和覆盖有鳞片状骨骼的蠕形动物。”
神奇的腔肠动物 栉水母
栉水母是一种食肉的腔肠动物,目前对澄江发现的栉水母化石仅限于描述,对其进化意义还未研究清楚。
它的身体上有类似楼梯一样的褶子,身体辐射对称,这在海洋生物中非常特殊。因为辐射对称的动物在海洋中保持平衡很难,捕食就更加不容易。栉水母身体顶端长了一个石质的平衡球,依靠它来掌握平衡。现代栉水母叫“海胡桃”,是最古老的无脊柱动物。
寒武纪海洋巨无霸 奇虾
奇虾是一类已经灭绝的大型无脊椎动物,化石表明这种动物口器有十几排牙齿,直径有25厘米,粪便化石长10厘米,粗5厘米。由此推测,奇虾体长可能超过2米。奇虾最初在加拿大发现,当时只发现一只前爪的化石,被误认为是虾的尾巴。科学家还想像了一个虾头,由于它不是虾,所以命名为奇虾。1994年,我国科学家在帽天山发现完整的奇虾化石,纠正了从前的错误,所谓的“尾巴”其实是它的爪子。
科学家在奇虾粪便化石中发现小型带壳动物的残体,这说明它是寒武纪海洋中的食肉动物,是海洋世界的统治者和食物最终的消费者。奇虾的发现表明,当时海洋确实存在完整的食物链。新的研究发现,奇虾的捕食肢能弯曲,腿能在海底行走,不过它的附肢没有分化,节之间缺少关节。
人类远祖 云南虫
云南虫,身体呈蠕形,一般长3至4厘米,大者可以长到6厘米,1991年侯先光研究员发现并命名。它的头部在化石上不易保存,开始曾被认为是特殊的蠕虫。1995年,陈均远等研究者发现它有7对腮弓,可以呼吸,并把食物留在口腔里,这是脊索动物的重要特点,提出了“云南虫是脊索动物”的观点。
云南虫原始的脊索是脊椎的前身,相当柔软,容易受到外力的伤害,似于如今脊髓中的软性物质,身体神经单元集中的脊索上,肢体的感觉可以通过脊索传到全身,脊索的出现提高了动物控制身体和对环境的适应能力。云南虫的发现证明了在澄江动物群中蕴涵着脊椎动物的起源,这是生命演化史上的重大突破。
中国学者曾在《自然》杂志发表数篇文章,集中展现对云南虫的研究成果。1995年《纽约时报》发表一篇名为《从云南虫到你之路》的文章,文中说:“如果云南虫夭折,动物的中枢神经系统将永远得不到发展,地球将像遥远的月球一样永远寂寞冷清。”
梦幻生物 怪诞虫
怪诞虫属于叶足动物门,头很大,躯干背侧具有7对斜向上生长的强壮的长刺,最早发现于加拿大,它是寒武纪最著名的动物。
由于最初的化石保存不好,当英国古生物学家莫瑞斯1977年看到它身体上规则分布的两排刺时,误当成了用来走路的腿,而把本用来走路的腿误作装饰品。他认为这样的奇幻生物“只有做梦才能梦到”,所以命名为怪诞虫。
我国科学家在澄江发现的怪诞虫化石订正了这种错误的解释。后来,侯先光先生对采自澄江的最好的块标本修理后揭示,原先复原的怪诞虫头尾也颠倒了。在讨论动物演化时,怪诞虫被作为“寒武纪大爆发产生了比现代多得多的门(门一级生物),后来大部分灭绝”这一观点的理论基础。
-
C++成员函数的重载、覆盖与隐藏
2007-12-31
<转>
成员函数的重载、覆盖与隐藏
成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚
概念,否则错误将防不胜防。
8.2.1 重载与覆盖
成员函数被重载的特征:
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
覆盖是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
示例8-2-1 中,函数Base::f(int)与Base::f(float)相互重载,而Base::g(void)
被Derived::g(void)覆盖。
#include <iostream.h>
class Base
{
public:
void f(int x){ cout << "Base::f(int) " << x << endl; }
void f(float x){ cout << "Base::f(float) " << x << endl; }
virtual void g(void){ cout << "Base::g(void)" << endl;}
};
class Derived : public Base
{
public:
virtual void g(void){ cout << "Derived::g(void)" << endl;}
};
void main(void)
{
Derived d;
Base *pb = &d;
pb->f(42); // Base::f(int) 42pb->f(3.14f); // Base::f(float) 3.14
pb->g(); // Derived::g(void)
}
示例8-2-1 成员函数的重载和覆盖
8.2.2 令人迷惑的隐藏规则
本来仅仅区别重载与覆盖并不算困难,但是C++的隐藏规则使问题复杂性陡然增加。
这里“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual
关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual
关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。
示例程序8-2-2(a)中:
(1)函数Derived::f(float)覆盖了Base::f(float)。
(2)函数Derived::g(int)隐藏了Base::g(float),而不是重载。
(3)函数Derived::h(float)隐藏了Base::h(float),而不是覆盖。
#include <iostream.h>
class Base
{
public:
virtual void f(float x){ cout << "Base::f(float) " << x << endl; }
void g(float x){ cout << "Base::g(float) " << x << endl; }
void h(float x){ cout << "Base::h(float) " << x << endl; }
};
class Derived : public Base
{
public:
virtual void f(float x){ cout << "Derived::f(float) " << x << endl; }
void g(int x){ cout << "Derived::g(int) " << x << endl; }
void h(float x){ cout << "Derived::h(float) " << x << endl; }
};
示例8-2-2(a)成员函数的重载、覆盖和隐藏
据作者考察,很多C++程序员没有意识到有“隐藏”这回事。由于认识不够深刻,
“隐藏”的发生可谓神出鬼没,常常产生令人迷惑的结果。
示例8-2-2(b)中,bp 和dp 指向同一地址,按理说运行结果应该是相同的,可事
实并非这样。void main(void)
{
Derived d;
Base *pb = &d;
Derived *pd = &d;
// Good : behavīor depends solely on type of the object
pb->f(3.14f); // Derived::f(float) 3.14
pd->f(3.14f); // Derived::f(float) 3.14
// Bad : behavīor depends on type of the pointer
pb->g(3.14f); // Base::g(float) 3.14
pd->g(3.14f); // Derived::g(int) 3 (surprise!)
// Bad : behavīor depends on type of the pointer
pb->h(3.14f); // Base::h(float) 3.14 (surprise!)
pd->h(3.14f); // Derived::h(float) 3.14
}
示例8-2-2(b) 重载、覆盖和隐藏的比较
8.2.3 摆脱隐藏
隐藏规则引起了不少麻烦。示例8-2-3 程序中,语句pd->f(10)的本意是想调用函
数Base::f(int),但是Base::f(int)不幸被Derived::f(char *)隐藏了。由于数字10
不能被隐式地转化为字符串,所以在编译时出错。
class Base
{
public:
void f(int x);
};
class Derived : public Base
{
public:
void f(char *str);
};
void Test(void)
{
Derived *pd = new Derived;
pd->f(10); // error
}
示例8-2-3 由于隐藏而导致错误从示例8-2-3 看来,隐藏规则似乎很愚蠢。但是隐藏规则至少有两个存在的理由:
写语句pd->f(10)的人可能真的想调用Derived::f(char *)函数,只是他误将参数
写错了。有了隐藏规则,编译器就可以明确指出错误,这未必不是好事。否则,编
译器会静悄悄地将错就错,程序员将很难发现这个错误,流下祸根。
假如类Derived 有多个基类(多重继承),有时搞不清楚哪些基类定义了函数f。如
果没有隐藏规则,那么pd->f(10)可能会调用一个出乎意料的基类函数f。尽管隐
藏规则看起来不怎么有道理,但它的确能消灭这些意外。
示例8-2-3 中,如果语句pd->f(10)一定要调用函数Base::f(int),那么将类
Derived 修改为如下即可。
class Derived : public Base
{
public:
void f(char *str);
void f(int x) { Base::f(x); }
};











当P0,P2固定,引入参数t,令上述比值为t:(1-t),即有:


