- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 3.1.1 抛物样条曲线 一、绘制曲线的基本方法 在设计和绘图中,几乎不可能没有曲 线。这些曲线一般分为两类:一类是 标准曲线,可以有标准的数学方程来 描述,如圆、椭圆、抛物线等;另一 类是拟合曲线,它们不能用标准的数 学方程来描述,只有先给出一些数据 点,然后用相应的数学方法来拟合这 些数据点成曲线。 例如有实验曲线、等值线等,它们都 是通过做实验得到一些实验数据、或 经测量得到一系列离散数据点。依据 这些实际数据,我们希望能构造出一 条曲线,使其完全通过或者比较贴近 这些数据点。 拟合曲线的问题:讨论由离散的 数据点如何构成曲线的方法。 在计算机图形学这个领域里讨论的曲 线,一般都是指的拟合曲线。要讨论 的问题:已知一组数据点(型值点), 选用哪种数学方法来加以拟合,相应 的数学表达方式以及如何绘制成曲线。 为了说清这些问题,还须先从标准曲 线开始。 在手工操作绘制曲线时,除了圆弧类 曲线可以直接借助于工具圆规来画出 外,其他的曲线一般都是先确定几个 点,然后借用曲线板分段绘出。其实 这也是用计算机来绘制曲线的基本原 理。 由于计算机图形输出设备的工作特 点,曲线一般是离散成直线画出的。 (见图) 另一个问题是参数法表示。(特别是 对于多值曲线,尤为重要) 例如看一个圆,它的标准方程是: x2 + y2 = r2 可写成:y = 圆的参数方程表示为: x = r?cos(t) y = r?sin(t) 这两种表示方法,在绘图的时候是存 有明显的差别的。看图。 取等量的变量但 得不到均匀曲线 取等量的变量 得到均匀曲线 从以上的分析可得出绘制曲线的基本 方法有两条: 离散化 这是由于硬件的条件 决定的,理想化的曲线是绘不出来 的。 参数法 这是由于曲线的质量 要求决定的。 下面我们以一个椭圆为例,来说明其 绘图过程和程序。 椭圆的参数方程为:(中心在原点) x=a ? cos(t) y=b ? sin(t) (0?t?2?) 当参数 t=ti 时: xi=a?cos(ti) yi=b?sin(ti) 当参数 t=ti+?t 时: x i+1=a?cos(ti +?t ) y i+1=b?sin(ti +?t ) 当 ?t 相当小时,我们认为在椭圆上两 点之间的弧长就可以用该两点之间的 弦长来代替。 (见图) (xi,yi) (xi+1,yi+1) ti ? t 所以椭圆的绘图程序可写成: void ellipse(x0, y0, a, b, dt) int x0, y0, a, b, dt; { int x, y, n, i; float t1, t=0.0; t1=dt*0.01745; n=360/dt; moveto(x0+a, y0); for(i=1; in; i++) { t=t+t1; x=x0+a*cos(t); y=y0+b*sin(t); lineto(x, y); } lineto(x0+a, y0); } 这个程序说明了绘制曲线的一般方法, 用离散的直线段代替了曲线。致於直 线段长度的取值则决定于对曲线的精 度要求。显然,参变量的增量越小, 则离散直线段的长度越短,于是得到 的曲线精度越高。 (另外,还可以应用两角和的三角公式来简化 程序中的运算步骤) 二、抛物样条曲线 用抛物线作为基本曲线,通过一定的 数学方法,把一组离散的数据点用一 条复合的曲线光滑地连接起来。 1.过三点定义一条抛物线 设有不在一直线上的任意三点:P1,P2, P3。如何定义一条抛物线使其通过该 三点。 P2 P1 P3 抛物线参数表达式的一般形式为: P(t)=A1+A2*t+A3*t2 (0?t?1) 目前,表达式中的三个系数A1、A2和 A3是未知的,所以只要确定该三个系 数的值,则抛物线就能唯一确定。 要求三个未知数,必须设三个独立的 条件。因抛物线过该三点,所以设: (1) 抛物线以 P1 为始点,即 t=0时,P(0)=P1; (2) 抛物线以 P3 为终点,即 t=1时,P(1)=P3; (3) 当 t=0.5 时,曲线过P2点,即 P(0.
您可能关注的文档
- 心脏瓣膜手术的体外循环(CPB)管理.ppt
- 医务人员针刺伤危害的预防和控制.ppt
- 小班计算比较大小.pptx
- 第六章药用高分子包装材料.ppt
- 99型自动变速箱介绍.ppt
- 第三章商务谈判计划组织与管理修改.ppt
- 2016届江苏江阴长泾中学高考语文二轮复习古代诗歌鉴赏课件:古代咏史怀古诗(人教版).ppt
- §21§22现代企业制度.ppt
- 2014八下月考(参考答案).ppt
- 儿童营养与健康培训.ppt
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)