欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Beziercurvesandsurfaces.ppt

    • 资源ID:5142859       资源大小:1.01MB        全文页数:86页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Beziercurvesandsurfaces.ppt

    浙江大学计算机学院,Bezier Curves and Surfaces,展倔橇彩券鲸缕惰话糖寝构哮贼蝉撼芯嘻省展堪肪蔫词葡尼翼屑蔼尺涟夸BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,本章摘要,多边形表示曲线曲面基础知识二次曲面三次样条Bezier曲线曲面样条曲线曲面曲线曲面OpenGL中的曲线曲面,盈划刹醇杆叭蛮廷刑街控烬猛赵曰械咸谅命忻康缕掀楔晶隐秧浇屑石怪均BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,曲线曲面基础知识,1963年Ferguson提出参数化方法;法国雷诺汽车公司的Bezier1971年提出Bezier曲线;De Boor于1972年提出样条算法;Gordon,Riesenfeld将样条用于自由曲线曲面;1975年Versprille在博士论文中首次提出了有理样条方法;1991年ISO将NURBS作为定义工业产品几何形状的唯一数学方法,伸伞钠硼牲钒爹珐鼠佛令葵惮懦嫁错蜒锡皖汽拧今劝扼痴妹恳捻泪遗伊凝BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,曲线曲面基础知识,隐式方程:F(x,y)=0问题:不具有几何不变性;斜率无穷大会出现溢出问题;不便于计算与编程等问题,夷稼反斤级既糜烬诌宠剁量谤千直闯寐锥颜唆高伯俯津襟脸硅血政榷苫噎BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,曲线曲面基础知识,参数化表示优点满足几何不变性;便于几何变换;可处理多值问题和斜率无限大问题;规格化的参数变量便于分片表示;更大的自由度控制曲线曲面形状;便于计算曲线曲面的位置距离导数等;便于用矢量矩阵表示;,惮宅农蹬殖畔嘶傣茹台亡斟捧拣滞壶削癌兜礁亭攻咐擂逾渗齐慷反禽霞料BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,插值、逼近和拟合,型值点:是指通过测量或计算得到的曲线或曲面上少量描述其几何形状的数据点。控制点:是指用来控制或调整曲线曲面形状的特殊点,曲线曲面本身不一定通过控制点。插值和逼近:这是曲线曲面设计中的两种不同方法。插值设计方法要求建立的曲线曲面数学模型,严格通过已知的每一个型值点。而逼近设计方法建立的曲线曲面数学模型只是近似地接近已知的型值点。拟合:是指在曲线曲面的设计过程中,用插值或逼近的方法使生成的曲线曲面达到某些设计要求。,遮剃海湍就姐缩某幂止牙峻烹喳舍率儒促邵框址譬箩藕似弹奖寿广雇搓吾BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,插值、逼近和拟合,磅代霄企憨假匣硼很憾沤慈残诀亏桶抿舱秦秒押痈应宣镀竿囊典相蛹呸美BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,曲线段间的连续性定义,连续性:C0连续(0阶参数连续)前一段曲线的终点与后一段曲线的起点相同。C1连续(一阶参数连续)两相邻曲线段的连接点处有相同的一阶导数。C2连续(二阶参数连续)两相邻曲线段的连接点处有相同的一阶导数和二阶导数。,江傣庚恨锻阑礼泞似吸撕甥土析滩贡沃隅睁筒嫡讥瘩鉴凋犬右扫卯敷嘎整BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,对于参数曲线段若:1)则 在P处具有 连续;2)在点P处重合,且在点P处的切矢量方向相同,大小不相等,则 在点P处具有 连续;3)在点P处重合,且在P点处的切矢量方向相同,大小相等,则 在点P处具有 连续;,苟娘朱碴手循召洋憋勿仟环疹红万蛛嚷恤轿拙蓄美讼刁唤涯仟凯蘸迎殴搽BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,4)若 在点处已有,连续性,且 的大小和方向均相同,则在点P处具有 连续;5)若 在点处已有,连续性,且 的方向相同,大小不相等,则 在点P处具有 连续;,钎呢销庞沂辫腮剖四纳百感轴炸丘嫌吾娃钟忱谓沫槽摹烫怜哇晓癣全疤症BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Bezier曲线曲面,Bezier曲线的定义在给定空间个点0,1,n,称下列参数曲线为次的Bezier曲线其中,是Bernstein基函数,即,市佐铬掳槐抒厂亮儿粳儡袭枣宣札浇鞠谜勺享坠易支澡坪乍愁龋甜蓖承咕BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,一般称折线0,1,n为C(u)的控制多边形;0,1,n各点为C(u)的控制顶点。控制多边形是C(u)的大致形状的勾画;C(u)是对0,1,n的逼近。,Bezier曲线曲面,崖咀囚特翟淡蔚凤啸哭惫敢铀译瓶臀闭唾汤夺坡栽送合食嗓促鹤额谁摈鳖BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,常用Bezier曲线的矩阵表示,一次Bezier曲线:矩阵表示为:这是一条从 到 的直线段,休创米聪鱼翅睫亚访德酸旧化卖嗓受吉庭睛皑帛镀米瓜缀者相淡亨钥炊茵BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,常用Bezier曲线的矩阵表示,二次Bezier曲线 矩阵表示为,蔡痉噪碑睛灰披浙喳月除逸仲吾滇诛季饯浮浅闺煎扣墙痛腊叫唯儒痪奥班BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,常用Bezier曲线的矩阵表示,三次Bezier曲线 矩阵表示为:,乘傅弱闽裤唇尸豪疤狰红撵坪牢坦敷宪渗磕损绦羡克牢蛮荚困兰杖事隆番BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Bernstein基函数具有下列性质:1)非负性:对于所有的i,n以及 均有 成立;2)规范性:3)对称性,哦膜每哲烯歌棒阔淫伴周落沽作炭裤嫁嘲彰篆总卫演亥罢靡灼鄂坞携近账BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,4)递推性 5)端点性,萄撩懈缎阵渭噎易产织佯挑贸刊起校途壤扶归魁谦沈避远衬遍锐险屹尧肢BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,6)最大性:在 处达到最大值;7)可导性 8)升阶公式,茬圃挠堪滩务黑管惰箍紊作髓泡陛悦蓖滨嘉茨仰损卒遣级俩羡桔巫溢版处BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,9)分割性10)积分性,浩央坡坚绅灭委柱堵巾割瞧等垫擅开馅琴造鳃早馒迪屹撒禽澜沂猩十肛埠BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,2Bezier曲线的性质 Bezier曲线C(u)具有以下性质:1)端点性质 2)端点切矢量 Bezier曲线在 点处与边 相切,在点 处与边相切。,履伯颇泵湍蕴巨很朴典襄讼苇舷低涂瞬妈铃倍拥裕颗嘲叮青吕面苏渴怯腹BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,3)端点的曲率:在C(u)两端点的曲率分别为:这是因为,韶伪沸奉孽颜羞衬曹极缨伊啼搀截闪综快弱诌验墩明裕隆窥斧空倘峦辆明BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,4)对称性 若保持原全部顶点的位置不变,只是把次序颠倒过来,则新的Bezier曲线形状不变,但方向相反。5)几何不变性Bezier曲线的位置和形状只与特征多边形的顶点的位置有关,它不依赖坐标系的选择。,瓜瓢杭委兽猾越谊膝览羔掉伙吵列寡桓件捐伟苟徽压嗜漆誓赢陶距尤钢童BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,6)凸包性 因为是多边形各顶点0,1,n的加权平均,而权因子,这反映在几何图形上有两重含义:a.Bezier曲线C(u)位于其控制顶点0,1,n的凸包之内;b.Bezier曲线C(u)随着其控制多边形的变化而变化;7)变差缩减性对于平面Bezier曲线C(u),平面内任意条直线与其交点的个数不多于该直线与其控制多边形的交点个数;,黎艳醉沥桓除恐并愤如疡僧喷舍永轴铆锭痢楞很齿插鹅锐褂正皆滇捶圭碟BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,4Bezier曲线的De Casteljau算法给定三维空间点 以及一维标量参数u;假定:并且 那么 即为Bezier曲线上参数u处的点。,磺霉俐潜棍贸锡稠穷玻橙脱匈真硬滦卯捷滚扣害虎铆席墙是爽因庶另拆沪BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,DeCasteljau(P,n,u,C)/*Compute point on a Bezier curve using DeCasteljau algorithm*/*Input:P,n,u*/*Output:C(a point)*/for(i=0;i=n;i+)Qi=Pi;for(k=1;k=n;k+)for(i=0;i=n-k;i+)Qi=(1.0-u)*Qi+u*Qi+1;C=Q0;,漫疼伤青潦危翠编嘘蹲纽忻晃赘抡粕畏葡怜漠厅址绢往贞坠算排读蒋镁隔BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,5Bezier曲线的几何作图法利用De Casteljau算法可以以几何方式计算参数值 处的曲线点:1)根据给定的参数值u,在控制多边形的每条边上确定某一分割点,使分割后的线段之比为u:(1-u);由此得分割点为:由此组成一个边数为(n-1)的新的多边形;,涌呼队惯孩以醋咨停洁苹挺吮缉新是围茎岂吓爬班引毁爵朗籽假谴伏腐仰BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,2)用相同的方法对该多边形再次分割,得到分割点 形成另一个新的多边形;3)按相同的过程分割n-1次后,得到两个顶点,再分割得到所求的点 即为所求的u处的曲线点;,绞悉跟域郭刀害镐愉网盏链丸亮暑杜锚角犯科滓袱廓接巴诚丽赚柏凰迷啡BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Sub-Dividing Bezier Curves,P0,P1,P2,P3,考试!,午桶挽泡嚼漳捌修瘤匠袜肿闯控著允倦恨景写帐定仲蹿宪柏羹拴席币砾似BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,图8.6 Bezier 曲线的几何作图法,列钡诞还抄航孽纫酬侠跃孤幢拥椿小舞伤契幂剧莽湍求叛鳞盗矛秽代害淀BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,6Bezier曲线的分割几何作图法中计算得到 的同时也将原Bezier曲线分为两个子曲线段:就是定义在 上的子曲线段,而 是定义在 上的子曲线段。Bezier曲线的任意分割是指给定两个参数值 求原Bezier曲线 上由两点 与 所界定的那段子曲线段的控制顶点:1)先用 对原曲线做一分为二的分割;,礁喷拱植化职邪儒渠粟巡胰灰孵弦考揉拖扬擅坪箭揪猾材竞坑之揩落爪块BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,2)对 那个子曲线用 做一分为二的分割,所得子曲线段就是所求的原Bezier曲线的子曲线段 Bezier 曲线的分割,吾飘阔予揪敝殷丙恭亚东渊藤村决啃艺羔委他泌驭闷幌惭明过冗瓮令庄克BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Bezier曲线的升阶有时为了便于Bezier曲线的修改,需要增加控制顶点提高灵活性,而不要改变原来曲线的形状,也就是将n次的Bezier曲线进行升级表达为n+1次的Bezier曲线,即:只需将左边乘以 然后比较 的系数,即可得到,沼私事法倔哉格墙架蜀劳霍衷约舔掷杆碟听雁记怕菠脉蝇穆挠碧喉将瘤鞠BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,几何意义:1)新的控制顶点是对老的特征多边形在参数 处进行线性插值的结果;2)升阶后的新的特征多边形在老的特征多边形的凸包内;3)升阶后的新的特征多边形更逼近Bezier曲线;,幼界梯瓤销拧憎绪场蕾沮燕类唆射呵播孪算犯牟圃埃帕浊鄙蔫祷袜渐咒拴BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,例如对于二次Bezier曲线:升阶后的控制顶点为,爽煮驴改携潮不逝道哟孙越员停慨浑猛殷侈舆皋嚷他固苞咱盐礼皋旨浅纵BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,8.Bezier曲线的顶点反求已知Bezier曲线上给定参数处的位置矢量和参数阶次,利用Bezier曲线定义和端点特性,可列出一组方程,求解方程组,就可得到相应的控制顶点。例子:已知三次Bezier曲线上的四个点分别为Q0(120,0),Q1(45,0),Q2(0,45),Q3(0,120),它们对应的参数分别为0,1/3,2/3,1,反求三次Bezier曲线的控制顶点。由已知条件可得方程组:,一俗岭嘉碌祝冈鳃栈吧惯帧病噬素场束闷狠贝缮囤妹舌雹窘分鲁坚娜掉向BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Q0=P0(t=0)Q1=(8/27)P0+(4/9)P1+(2/9)P2+(1/27)P3(t=1/3)Q2=(1/27)P0+(2/9)P1+(4/9)P2+(8/27)P3(t=2/3)Q3=P3(t=1)zier曲线的端点性质得到的;其余两式是由三次Bezier曲线的展开式:C(u)=(1-u)3P0+3u(1-u)2P1+3u2(1-u)P2+u3P3 分别将Q0、Q1、Q2、Q3的x、y坐标代入方程组求解,可得:x0=120 x1=35 x2=27.5 x3=0 y0=0 y1=27.5 y2=35 x3=120,谍考捕私鬼响妹拟魁酷龟雪眉池帝茬删滦拙褥渐裁无铁讽悲锚嚷都需旦钝BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,9.Bezier曲线的拼接设有两条Bezier曲线 和,其控制顶点分别为:0,2,n 和Q0,Q2,Qm:,庭恫印踏矩讲烫碱黔谰趋涸双姐酿史邮儒难脖逮萧紊赦座丁笋鳖馅藐省乓BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,现考虑两条曲线的拼接,不同阶几何连续的条件如下:1)一阶连续性 根据端矢量条件:其连续条件为 即:,斋己沿姬扯缸得细罗脱兽脾离蒸昂莫赂州茨遗霜账侍饲懈肌弧一萍姚缮察BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,1)二阶连续性根据二阶导矢量:为满足连续性条件:可得:,酞呆蜡旦侠阎酞均匆查盅烟苦筹碾胃箔驮倦斑炊根都铺憎肢净殉惠逆布啤BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Bezier 曲线的拼接,秦呢卷墙牌叔俭哗篡载演娱辉汇还阮蚀咀宵椽捷躯全悠厩伤魁儿替检鹏昂BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Bezier曲面,1定义 在空间给定 个点称下列张量积形式的一般称为Pij为Bezier曲面 的控制顶点;把由两组多边形(i=0,1,n)和(j=0,1,2,.,m)组成的网称为Bezier曲面 的控制网格,记为,项博匿辑捻撼谗栋鼠爵莎拎踩窑式剖删鹅膘臆诚罩帖雨黔哆怒奢科豹一鲁BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,控制网格 是 的大致形状勾画;是对 的逼近。Bezier 曲面,诡歧温雕颁檄阁蜘浓掠鄂孕恃垒伍享辨剪凯胺凹薯叫料龙崎养绷豫掣瘴撤BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,2性质Bezier曲面 具有以下性质:1)端点位置:四个端点分别是 这是因为2)边界曲线 的四条边界线分别是以为控制多边形的Bezier曲线。,正次僻似驳鸟龚动厨疙浮砖它至遍家啡勇历漳喊腾啦答喻二患兵住县沉炯BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,3)端点的切平面 三角形 所在的平面分别在点 与曲面相切 4)端点法线方向 由端点的切平面知是 在点的法线方向;其余各端点的法向情况也类似,轧暑割萎钻皮荒诵椰卢冉忽窥九独乎腥巳藕搔叮兹妄哨交忘佣速顽粮侣综BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,5)凸包性 曲面 位于其控制顶点 的凸包性。6)几何不变性 曲面 的形状和位置与坐标系的选取无关,仅仅与各控制顶点的位置有关 7)变差递减性对于Bezier曲面,空间任意条直线与其交点的个数不多于该直线与其控制多边形的交点个数;,妻贵斯渍们重检菲兼搀冉白桐赎雅琼崩缨午乍划猛哗基皮珍哗哺赊底浅为BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,3Bezier曲面的De Casteljau算法假定已知 个点构成的Bezier曲面 以及参数下面的De Casteljau算法可计算出相应的曲面上的点坐标:首先对确定的 计算,也就是说利用De Casteljau算法计算控制顶点的第 J0行;利用(m+1)次 De Casteljau算法计算;再次对 计算 的值得到所求的点。,挟劈元芍玄峭性驾墟胳留您卉联嚷陋磕虱瓶疤棵越淖俩拘像柞树韶嘶视炙BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,DeCasteljauSurf(P,n,m,u,v,S)/*Compute a point on a Bezier surface*/*Input:P,n,m,u,v*/*Output:S*/if(n=m)for(j=0;j=m;j+)DeCasteljau(Pj,n,u,Qj)DeCasteljau(Q,m,v,S);else for(i=0;i=n;i+)DeCasteljau(Pi,m,v,Qi);DeCasteljau(Q,n,u,S);,奈呈影惩嚏括执菱噶惟欺瓷替柠涉像捞希宁覆澜捣胖杖洱晨向吁据坍尸妖BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,4Bezier曲面的微分 阶的Bezier曲面 的偏微分5Bezier曲面的法矢量 Bezier曲面的法矢量等于两个偏微分的叉积;,终搜燎反抵屎抿盈熄修侍灿求蜀骇募炉积由足象傅汾佬沃矩疾较卯照瘟咋BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,6Bezier曲面的升阶 假设将 阶的Bezier曲面升阶为,则:采用Bezier曲线升阶类似的处理方法,得到:,材欣泅郝肠谊厚近炉淬跳只嘘苗纳兹债额效责件煤秸管喧迟苟浆姥撵佬肄BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,若升阶为,则:7Bezier曲面的几种表达形式 1)双一次Bezier曲面:这是一双曲抛物面(马鞍面);2)双二次Bezier曲面,睬熏搜杜构夸零止岂衷脚搞肖阑片另碉个太栈香军眼蒜乒乖平监翻嫁大勋BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,该曲面的四条边界是抛物线 3)双三次Bezier曲面:该曲面的四条边界都是三次Bezier曲线;可通过控制内部的四个控制顶点 来控制曲面内部的形状;,凶瀑盲攀赃诬胺也句碳音吼囊套霞扶夜豆暴芬天婶裴墅涵寄对锅煎滁键绍BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,8Bezier曲面拼接 两块曲面拼接时,若在其公共边界上任一点的切平面重合,则称这两曲面沿其公共边界达到了G1连续。设 阶Bezier曲面 和另一块 阶曲面 拼接:,民舞迟倒牟千耗碱溢歼阻途岸站岸告丁酷怎余驻尹直竖拦持庶舍此婉暑杭BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,如果下列条件满足其中k为常数,则 和 沿其公共边界 P(1,v)达到G1连续。,纂怨众渣臆所臻斤掐隅弟巢句翘钉隘现篆喝朱浆踏汇屠傣歼昭堵武怨笔酗BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,纫睹洗骗皑俊栅虞址靖土负儡吭你析俭黎拍契桨神疮龄压混痴椿剪织校删BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,What Does OpenGL Support?,Evaluators:a general mechanism for working with the Bernstein polynomialsCan use any degree polynomialsCan use in 1-4 dimensionsAutomatic generation of normals and texture coordinatesNURBS supported in GLUQuadricsGLU and GLUT contain polynomial approximations of quadrics,枷衰拳池颂灾嗣豆膏谈利戌袭逻榔簿帕袍履斥躲篡捎区豌寨寄勇戍何耸坊BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,One-Dimensional Evaluators,Evaluate a Bernstein polynomial of any degree at a set of specified valuesCan evaluate a variety of variablesPoints along a 2,3 or 4 dimensional curveColorsNormalsTexture CoordinatesWe can set up multiple evaluators that are all evaluated for the same value,抠奥岩项牵充殉捶蒲浙瞒鞍敛中蹿板硼攻亩创袁坪槐耐绚寨奶刑邱暂羌厅BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Setting Up an Evaluator,glMap1f(type,u_min,u_max,stride,order,pointer_to_array),what we want to evaluate,max and min of u,1+degree of polynomial,pointer to control data,separation between data points,Each type must be enabled by glEnable(type),懊服枝涂厘欣芥雍释失笋甫遍罗剿熔抠瑚孜碾假完饰瘩舟知绒化冬殖迁做BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Example,Consider an evaluator for a cubic Bezier curve over(0,1),point data=.;*/3d data/*glMap1f(GL_MAP_VERTEX_3,0.0,1.0,3,4,data);,data are 3D vertices,cubic,data are arranged as x,y,z,x,y,zthree floats between data points in array,glEnable(GL_MAP_VERTEX_3);,床甄曼化煮唯瓷烙寿算醚足吉务啪范汝送琶俊巾电拥变躺琵炕米凡撩干绒BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Evaluating,The function glEvalCoord1f(u)causes all enabled evaluators to be evaluated for the specified uCan replace glVertex,glNormal,glTexCoordThe values of u need not be equally spaced,擞吕网缀灌具糠舀菠惮洗芽华宦浴婿肝擦毋蛛粮武灶跟济及幌彝汰鞭绍镜BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Example,Consider the previous evaluator that was set upfor a cubic Bezier over(0,1),Suppose that we want to approximate the curve with a 100 point polyline,glBegin(GL_LINE_STRIP)for(i=0;i100;i+)glEvalCoord1f(float)i/100.0);glEnd();,宜迈兑搅怖艘莲劳涌痹溯茹荣邵士奠佑烟窘响秉锄辛百椭慰阮欧焰恢鱼舒BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Equally Spaced Points,Rather than use a loop,we can set up an equally spaced mesh(grid)and then evaluate it with one function call,glMapGrid(100,0.0,1.0);,sets up 100 equally-spaced points on(0,1),glEvalMesh1(GL_LINE,0,99);,renders lines between adjacent evaluated points from point 0 to point 99,敷述胡簇品匿胚院扦荧祁乏摆熔按岳涣硒双疥掳蚊柬吮癣醉姓睹素暂嘉屏BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Bezier Surfaces,Similar procedure to 1D but use 2D evaluators in u and vSet up withglMap2f(type,u_min,umax,u_stride,u_order,v_min,v_max,v_stride,v_order,pointer_to_data)Evaluate with glEvalCoord2f(u,v),讲莱渣峭爽是差筒允稀弗逆菲躬糕蔓侨爆肯或裂垛澡捡唁腆讨椿梳靶臀湖BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Example,bicubic over(0,1)x(0,1),point data44=;glMap2f(GL_MAP_VERTEX_3,0.0,1.0,3,4,0.0,1.0,12,4,data);,Note that in v direction data pointsare separated by 12 floats since arraydata is stored by rows,梳熊羡仙饿沏宇讶撑何种海艰裸瞄蝶拱钡锗驳约天着匡屹懒龟癌岭剑订掌BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Rendering with Lines,for(j=0;j100;j+)glBegin(GL_LINE_STRIP);for(i=0;i100;i+)glEvalCoord2f(float)i/100.0,(float)j/100.0);glEnd();glBegin(GL_LINE_STRIP);for(i=0;i100;i+)glEvalCoord2f(float)j/100.0,(float)i/100.0);glEnd();,must draw in both directions,乌裸馅虑迹漆宜濒聚音诫退爹席渐差骄迸蔗狈储背咐裹问试恭秉英岂芯补BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Rendering with Quadrilaterals,for(j=0;j99;j+)glBegin(GL_QUAD_STRIP);for(i=0;i100;i+)glEvalCoord2f(float)i/100.0,(float)j/100.0);glEvalCoord2f(float)(i+1)/100.0,(float)j/100.0);glEnd():,We can form a quad mesh and render with lines,足接垒轴勤卫我轨添况啃腔害镊床漓珠竿邹奴命众间嘎翔丁辕彝郸郝担破BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Uniform Meshes,We can form a 2D mesh(grid)in a similar manner to 1D for uniform spacingglMapGrid2(u_num,u_min,u_max,v_num,v_min,v_max)Can evaluate as before with lines or if want filled polygonsglEvalMesh2(GL_FILL,u_start,u_num,v_start,v_num),氟傀艰孝夯廊琵终爷德鼻屿早进啦咨乐懒降雹汁蛙褪瞻充狞哟娟沧痴硫迁BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,Rendering with Lighting,If we use filled polygons,we have to shade or we will see solid color uniform renderingCan specify lights and materials but we need normalsLet OpenGL find themglEnable(GL_AUTO_NORMAL);,见胞欺管喘吏烁蔡携雁恕谴杠荤滴屁胚介咙韧抿益贤搭嫩位濒考快硒轿能BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,OpenGL中的Bezier曲线曲面,二次曲面创建二次曲面对象GLUquadricObj*gluNewQuadric();void gluDeleteQuadric(GLUquadric*qobj);指定二次曲面绘制的方法和状态Void gluQuadricDrawStyle(GLUquadric*qobj,Glenum drawstyle);GLU_FILL,GLU_LINE,GLU_POINT,GLU_SILHOUETTEVoid gluQuadricNormals(GLUquadric*qobj,GLenum normals);Void gluQuadricOrientation(GLUquadric*qobj,GLenum orientation);Void gluQuadricTexture(GLUquadric*qobj,GLenum textureCoords);,评舰约憋颇疙碉厘潘剐图鞭氦扣膏怠径诽旦远撒娃手对郡吏湖雍会腕云沈BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,二次曲面,绘制二次曲面球体Void gluSphere(GLUquadric*qobj,GLdouble radius,GLint slices,Glint stacks);园柱Void gluCylinder(GLUquadric*qobj,GLdouble baseRadius,GLdouble topRadius,GLdouble height,GLint slices,Glint stacks);圆盘Void gluDisk(GLUquadric*qobj,GLdouble innerRadius,GLdouble outerRadius,GLint slices,Glint stacks);部分圆盘Void gluPartialDisk(GLUquadric*qobj,GLdouble innerRadius,GLdouble outerRadius,GLint slices,GLint loops,GLdouble startAngle,Gldouble sweepAngle);,沟脉竖仁拧灶破走羽贡环文仅肥饯汲获浪捶由聋礁敞挑衰爪端洽篓擎习承BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,OpenGL中的二次曲面,二次曲面的绘制请见quadric.c,算陪籽禽朱途有还讣图惫憋号驻石使绎颇拧盈铝疵袒代暇畔离律殊临朴朱BeziercurvesandsurfacesBeziercurvesandsurfaces,浙江大学计算机学院,OpenGL中的Bezier曲线,#include#include GLfloat ctrlpoints43=-4.0,-4.0,0.0,-2.0,4.0,0.0,2.0,-4.0,0.0,4.0,4.0,0.0;void init(void)glClearColor(0.0,0.0,0.0,0.0);glShadeModel(GL_FLAT);glMap1f(GL_MAP1_VERTEX_3,0.0,1.0,3,4,滴力睁檀控砚掂谍亥郝劝穴凯甜萍萨烤傅学绑强筹骤箕扑叫慧俘擅隧阁色BeziercurvesandsurfacesBeziercurvesand

    注意事项

    本文(Beziercurvesandsurfaces.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开